//通过系统的一个接口 拿到是不是第一次启动这个程序 如果是就调用导航页 如果不是 直接进入下一个视图

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

if([userDefaults objectForKey:@"FirstLoad"] == nil)

{

[userDefaults setBool:NO forKey:@"FirstLoad"];

//显示导航页

NSLog(@"显示导航页");

view.isFirstLoad = YES;

}

else

{

NSLog(@"不是第一次启动 不再显示");

view.isFirstLoad = NO;

}

-(void)welcome{

if (self.isFirstLoad==YES) {

//如果是第一次启动 调用引导页

[self creatView];

}

}

#pragma mark - 创建滚动视图

-(void)createUIScrollView

{

//实例化滚动视图

self.scrollView = [[UIScrollView alloc] init];

//位置和大小

self.scrollView.frame = CGRectMake(0, 0,320, 568);

//设置滚动视图的滚动范围

self.scrollView.contentSize =CGSizeMake(SCROLL_W*6, SCROLL_H);

//设置是否开启分页显示

self.scrollView.pagingEnabled = YES;

//设置拖拽的弹簧效果

self.scrollView.bounces =NO;

//设置委托

self.scrollView.delegate = self;

//添加到父视图上

[self.view addSubview:self.scrollView];

//载入图片

for(int i = 0 ; i < 6 ; i++)

{

//UIImageView显示图片

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]]];

//设置每一个imgView的frame

imgView.frame = CGRectMake(SCROLL_W*i , 0, SCROLL_W, SCROLL_H);

//把imgView添加到scrollView上

[self.scrollView addSubview:imgView];

//设置label显示滚动到哪一个视图

self.titleLabel = [[UILabel alloc]init];

self.titleLabel.text = [NSString stringWithFormat:@"%d",i];

self.titleLabel.frame = CGRectMake(0, 24, 320, 30);

self.titleLabel.backgroundColor = [UIColor redColor];

self.titleLabel.font = [UIFont systemFontOfSize:20];

self.titleLabel.textAlignment =  NSTextAlignmentCenter;

self.titleLabel.layer.cornerRadius = 7;

self.titleLabel.alpha = 0.5;

[imgView addSubview:self.titleLabel];

}

}

#pragma mark - 拿到当前滚动视图页码

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

NSLog(@"%f",scrollView.contentOffset.x);

//只要大于960即可跳转

if(scrollView.contentOffset.x > 960)

{

//跳转了

TRSubViewController *svc = [[TRSubViewController alloc] initWithNibName:@"TRSubViewController" bundle:nil];

[self presentViewController:svc animated:YES completion:nil];

}

}

#pragma mark - 载入视图

- (void)viewDidLoad

{

[super viewDidLoad];

[self createUIScrollView];

}

#pragma mark - 状态监测的方法

//用户手指在屏幕上向某个方向上拖动

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

NSLog(@"水平或竖直方向上拖动");

}

//当用户抬起拖动的手指时调用该方法

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

//告知一个BOOL类型的值,告诉你滚动视图最后的位置前,是否需要减速。

NSLog(@"拖动结束");

}

//完成缩放

-(void)scrollViewDidZoom:(UIScrollView *)scrollView

{

NSLog(@"完成缩放");

}

//就是当用户的手指已经从屏幕上移开而视图需要继续

//移动时调用这个方法。contentoffset属性 能够拿到

//用户手指抬起前 最后一次滚动的位置。

-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

{

NSLog(@"将要停止的时候调用");

}

//当滚动视图停止滚动了得到一个通知。滚动视图就用

//用contentOffset属性 反映出滚动视图的最终的位置。

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

NSLog(@"offset.x = %f",scrollView.contentOffset.x);

}

//会在滚动视图开始滚动的时候调用。从scrollView读取contentoffset 确定滚动视图滚动到位置。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

NSLog(@"offset.x = %f",scrollView.contentOffset.x);

}

-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView

{

NSLog(@"滚动到头");

}

IOS笔记之UIKit_UIScrollView的更多相关文章

  1. 荼菜的iOS笔记--UIView的几个Block动画

    前言:我的第一篇文章荼菜的iOS笔记–Core Animation 核心动画算是比较详细讲了核心动画的用法,但是如你上篇看到的,有时我们只是想实现一些很小的动画,这时再用coreAnimation就会 ...

  2. IOS笔记 1

    < ![CDATA[ 笔记 UIWindows 与UIView的关系iOS的坐标系统视图层次结构视图坐标(Frame和Bounds区别)UIView的常用属性和方法坐标系统的变换UIView内容 ...

  3. 【转】iOS笔记-自定义控件(OC)

    原文网址:http://www.jianshu.com/p/f23862eb7b8a 导读: iOS开发中,很多时候系统提供的控件并不能很好的满足我们的需求,因此,自定义控件便成为搭建UI界面中必不可 ...

  4. iOS笔记———数据存储

    应用沙盒:应用文件系统的根目录,每个应用都有独自的沙盒相互:在xcode中可以用NSHomeDirectory()函数,打印当前应用的沙盒根路径. 应用程序包:包含了所有资源文件和执行文件; * Do ...

  5. Xamarin开发IOS笔记:切换输入法时输入框被遮住

    在进行IOS开发的过程中,出现类似微信朋友圈的交互界面,当用户遇到感兴趣的内容可以进行评论.为了方便评论输入,当出现评论输入框的时候自动将评论输入框移动至键盘的上方,这样方便边输入边查看. 当用户隐藏 ...

  6. 【IOS笔记】Delegation

    Delegation Delegation is a simple and powerful pattern in which one object in a program acts on beha ...

  7. 【IOS笔记】Event Delivery: The Responder Chain

    Event Delivery: The Responder Chain  事件分发--响应链 When you design your app, it’s likely that you want t ...

  8. 【IOS笔记】Gesture Recognizers

    Gesture Recognizers Gesture recognizers convert low-level event handling code into higher-level acti ...

  9. 【IOS笔记】About Events in iOS

    About Events in iOS Users manipulate their iOS devices in a number of ways, such as touching the scr ...

随机推荐

  1. 转:RealThinClient LinkedObjects Demo解析

    这个Demo源码实现比较怪,有点拗脑,原因估是作者想把控件的使用做得简单,而封装太多. 这里说是解析,其实是粗析,俺没有耐心每个实现点都查实清楚,看源码一般也就连读带猜的. 这个Demo表达出的意义, ...

  2. JDBC中如何获取SUM函数返回的结果

    代码如下: ResultSet rs = stmt.executeQuery("SELECT sum() from...."); int keyValue = -1; if (rs ...

  3. mgo-后续测试(指定字段,获取id)

    测试完mgo中的DBRef后,想接着测试指定字段的显示,才发现原来采用框架编码,很多问题被隐藏了起来: 1.显示指定字段: 之前在使用mgo时一直是查询全部字段,在mongo终端环境写为如下格式: & ...

  4. WebService到底是什么?

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  5. KMeans的图像压缩

    # -*- coding: utf-8 -*- """ Created on Thu Aug 11 18:54:12 2016 @author: Administrato ...

  6. 第 一 百 天上课 PHP TP框架 数据库修改和删除

    修改的三种方式 //造数组的方式修改 public function xiugai1() { $db=D('yonghu'); $attr=array ( 'zhanghao'=>001, // ...

  7. dubbo properties

    DUBBO配置项的优先级: java -D优先于 Spring配置,Spring配置优先于 properties文件的配置,这也符合一般项目的规则. 覆盖策略: JVM启动-D参数优先,这样可以使用户 ...

  8. asp.net GridView控件的列属性

    BoundField 默认的数据绑定类型,通常用于显示普通文本 CheckBoxField 显示布尔类型的数据.绑定数据为TRUE时,复选框数据绑定列为选中状态:绑定数据为FALSE时,则显示未选中状 ...

  9. Extjs学习笔记--Ext.tree.Panel

    Ext.create('Ext.tree.Panel', { title: 'Simple Tree', width: 200, height: 150, store: store, rootVisi ...

  10. 装完RHEL7后,重新开机启动后显示:Initial setup of CentOS Linux 7 (core) 提示license报错

    装完RHEL7后,重新开机启动后显示: 1) [x] Creat user 2) [!] License information (no user will be created) (license ...