iOS中ScrollView(滚屏,引导界面,和判段是否是第一次登陆)

#import "RootViewController.h"
#import "SecondViewController.h"
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
#define kImageCount 6
#define kImageName @"v6_guide_"
@interface RootViewController ()<UIScrollViewDelegate>

@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self layoutSubview];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
//布局视图
- (void)layoutSubview{
    [self layoutScrollView];
    [self layoutPageControl];
}
//布局UIScrollView
- (void)layoutScrollView{
    //1.创建对象
    UIScrollView *scrollView =[[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    //2.配置属性
    scrollView.contentSize = CGSizeMake(kScreenWidth * kImageCount, kScreenHeight);
    //关闭水平指示器,就是水平滚动条
    scrollView.showsHorizontalScrollIndicator = NO;
    //设置scrollView 能否整屏滑动
    scrollView.pagingEnabled = YES;
    //设置代理
    scrollView.delegate = self;// 此时设置代理的目的,在协议的减速方法中,让scrollView与pageControl中建立联系

    scrollView.tag = 200;
    //3.添加到父视图
    [self.view addSubview:scrollView];
    //4.释放
    [scrollView release];

    //创建UIImageView
    for (int i = 0; i < kImageCount; i++) {
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth * i, 0, kScreenWidth, kScreenHeight)];
        imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@%d", kImageName, i + 1]];
        [scrollView addSubview:imageView];
        [imageView release];

        //判断是否是最后一张图片
        if (kImageCount - 1 == i) {
            //如果是最后一个imageView添加轻拍手势,为了进入该程序的主界面
            UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
            //添加到视图
            [imageView addGestureRecognizer:tapGesture];
            //释放
            [tapGesture release];
            //打开imageView的用户交互
            imageView.userInteractionEnabled = YES;
        }
    }

}
//布局UIPageControl
- (void)layoutPageControl{
    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(20, kScreenHeight - 30 * 2, kScreenWidth - 20 * 2, 30)];
    pageControl.numberOfPages = kImageCount;
    pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
    pageControl.tag = 300;
    pageControl.pageIndicatorTintColor = [UIColor grayColor];
    //添加响应事件
    [pageControl addTarget:self action:@selector(handlePageControl:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:pageControl];
    [pageControl release];
}

- (void)handlePageControl:(UIPageControl *)pageControl
{
    //1.获取到scrollView
    UIScrollView *scrollVW = (UIScrollView *)[self.view viewWithTag:200];
    //2.修改scrollView偏移量
    [scrollVW setContentOffset:CGPointMake(kScreenWidth *pageControl.currentPage , 0) animated:YES];
}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    //1.获取pageControl
    UIPageControl *pageCT = (UIPageControl *)[self.view viewWithTag:300];

    //2.设置pageControl索引,当前的点 目的让点随着图而动
    pageCT.currentPage = scrollView.contentOffset.x / kScreenWidth;

}

#pragma 轻拍手势

- (void)handleTapGesture:(UITapGestureRecognizer *)tap
{
    //进入程序界面
    SecondViewController *secondViewController = [[SecondViewController alloc] init];
    //将secondVC指定为window的根视图
    [UIApplication sharedApplication].keyWindow.rootViewController = secondViewController;
    //释放
    [secondViewController release];
}

@end

判断是否第一次登陆

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
   //用户索引项,存储用户信息,程序是否是第一次启动,以及保存用户密码等.
    NSUserDefaults *userDefalts = [NSUserDefaults standardUserDefaults];
    if (![userDefalts boolForKey:@"FirstLanch"]) {
        //把标志符存入本地,下一次判断,滤过分支
        [userDefalts setBool:YES forKey:@"FirstLanch"];
        //立即同步
        [userDefalts synchronize];
        RootViewController *rootView = [[RootViewController alloc] init];
        self.window.rootViewController = rootView;
        [rootView release];
    }else
    {
        SecondViewController *secondVC = [[SecondViewController alloc] init];
        self.window.rootViewController = secondVC;
        [secondVC release];
    }
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

//引导界面结束后的视图

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIImageView *imgeView = [[UIImageView alloc] initWithFrame:CGRectMake(40, 50, [UIScreen mainScreen].bounds.size.width - 40 * 2, [UIScreen mainScreen].bounds.size.height - 50 * 2)];
    imgeView.image = [UIImage imageNamed:@"1.jpg"];
    [self.view addSubview:imgeView];
    [imgeView release];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
时间: 2024-12-17 20:15:04

iOS中ScrollView(滚屏,引导界面,和判段是否是第一次登陆)的相关文章

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏)

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏) 2017.03.16 12:18* 字数 52 阅读 563评论 4喜欢 2 1. 截取屏幕尺寸大小的图片并保存至相册 保存至相册只需将方法saveImage中的代码替换即可 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0); [self.view.layer renderInContext:UIGraphicsGetCur

iOS中scrollview自动滚动的实现

http://bbs.csdn.net/topics/390347330 原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollview,但是无法实现. 一种解决方案见下边,更多解决方案见:http://ask.csdn.net/questions/374 .h文件 Objective C code ? 1 2 3 4 5 6 7 8 9  @interface Interface1 : UIViewController {   

ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题

注意scrollView左右滑动时不要刷新数据,刚进来时一次性请求所有数据 红包纪录和房源信息可以左右滑动和点击,tableView可以上下滑动,图片部分个人信息只刷新一次. 界面布局如下

ios 中scrollview的 bounce属性与view中的clipsTobounds属性

一:scrollview的 bounce属性 当scrollview滚动到边界时,再继续滚动会有个反弹的效果,scrollview里有bounce属性,当设置为yes时,可以反弹,设置为NO时不能反弹,请问,能不能使得它只有一个边界能反弹呢,这个作用可以用来实现在一个scrollview里添加tableview与scrollview可以连续滑动,也就是,当table滑动到底时scrollview下面的scrollview接着滑动 二:view中的clipsTobounds属性 iew2添加vie

iOS中的截屏

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage* image = UIGraphicsGetImageFromCurrent

IOS中的三大事件

iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的,只有继承了它才可以处理事件.而在ios中的事件可以分为三大类: 1.触摸事件 2.加速计事件(摇一摇) 3.远程控制事件 只要手指触摸屏幕,滑动,从屏幕离开,系统都会产生UIEvent对象类型的事件---当然包括UITouch事件     1 /** 2 * 开始触摸(也就是手指触摸屏幕(view)那一刻) 3 */ 4 -(void)touchesBegan:(NSSet *)touches withEvent

iOS 中导航控制器全屏向右滑动返回上一界面

在iOS中,导航控制器默认就自带了侧滑功能,当用户在界面的左边(左边边缘)滑动的时候,才会有侧滑功能.但是我们往往在开发的过程中需要在屏幕的任意位置滑动,都需要返回到上一个界面. 多说无意,直接看代码: 效果图部分: 代码部分(第二个界面): #import "CJSecondViewController.h" @interface CJSecondViewController ()<UIGestureRecognizerDelegate> @end @implementa

iOS中的ScrollView

概览 UIScrollView类为显示大于应用程序窗口的内容提供支持.它使得用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容. UIScrollView是包括UITableView和UITextView在内的多个UIKit类的父类. UIScrollView对象(或者简单地称为滚动视图)的中心思想是一个在它的内容视图中可调整的原点的视图.它裁剪它的内容至它本身的框架,该框架一般(但非必须)与应用程序主窗口的框架相符.滚动视图会跟踪手指的移动并据此调整原点.“通过”滚动视图显

swift UI专项训练38 用代码实现滚屏ScrollView

有时候我们在一个页面中放不下所有内容,就需要用到ScrollView,多余的内容可以通过滚动来获取. 首先定义一下宽和高,便于设备配适. let pageWidth = 320 let pageHeight = 800 然后在viewDidLoad中初始化一个scrollView: var scrollView = UIScrollView() scrollView.frame = self.view.bounds scrollView.contentSize=CGSizeMake(CGFloa