3、iOS 开发之 UIScrollView UIPageController NSTimer

一、UIScrollView属性

1.常见的属性

// 移动的位置
@property(nonatomic) CGPoint contentOffset;
// 内容的大小
@property(nonatomic) CGSize contentSize;
// 四边扩展的边距
@property(nonatomic) UIEdgeInsets contentInset;

2.其他属性

// 弹簧效果
@property(nonatomic) BOOL bounces;
// 是否能滚动
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
// 是否隐藏水平滚动条
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
// 是否隐藏垂直滚动条
@property(nonatomic) BOOL showsVerticalScrollIndicator;

3.UIScrollView的基本使用

1> 将需要展示的内容添加到UIScrollView2> 设置UIScrollViewcontentSize属性

4.UIScrollView不能滚动的原因

1> 没有设置UIScrollViewcontentSize
2> scrollEnabled = NO;
3> 没有接收到触摸事件 userInterfaceEnabled = NO
4> 没有取消autolayout功能

二、UIScrollView的代理

  • UIScrollView中有一个属性是delegate目的是监听整个滚动过程,当发生滚动时会通知它的代理对象来执行相应的操作

1.成为代理的必要条件

1> 遵守UIScrollViewDelegate协议
2> 设置代理的对象
* 用代码实现: self.scrollview.delegate = self;
* 通过SB拖线

2.拖拽滚动的代理的方法

// 用户开始拖拽时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// 滚动到某个位置时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 用户结束拖拽时调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

3.缩放的代理方法

// 返回需要缩放的视图控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
// 准备开始缩放的调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
// 正在缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView

1> 缩放实现步骤

* 设置代理对象
* 设置minimumZoomScale:缩放的最小比例
* 设置maxmumZoomScale:放大的最大比例
* 实现代理的方法

三、UIPageControl的分页

  • 分页:实现类似图片轮播器的效果
    前提:要将UIScrollView的pageEnabled属性设置为YES,为了增强分页效果,配合使用UIPageControl

1.常见的属性

// 总页数
@property(nonatomic) NSInteger numberOfPages;
// 当前页
@property(nonatomic) NSInteger currentPage;
// 当有一页时,是否隐藏页码指示器
@property(nonatomic) BOOL hidesForSinglePage;
// 其他页码指示器的颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
// 当前页码指示器的颜色
@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor;

2.监听方法

[_pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];

四、NSTimer的使用

作用:指定时间执行指定的任务,每隔一段时间执行指定的任务

1.开启一个定时任务

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget
selector:(SEL)aSelector
userInfo:(id)userInfo
repeats:(BOOL)yesOrNo;
// 每隔ti秒,调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个方法

2.取消任务

- (void)invalidate;
// 一旦定时器被停止了,就不能重现开启了,只能再创造一个定时器

3.将定时器添加到运行循环中

[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
  • 运行循环有两种模式:
默认的运行循环模式:NSDefaultRunLoopMode
监听滚动模式:NSRunLoopCommonModes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值