分页
只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示
一共多少页
self.pageControl.numberOfPages = count;
- 当前显示的页码
self.pageControl.currentPage = page;
- 只有一页时,是否需要隐藏页码指示器
self.pageControl.hidesForSinglePage = YES;
- 其他页码指示器的颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
- 当前页码指示器的颜色
@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor;
定时器 NSTimer
- 在指定的时间执行指定的任务
- 每隔一段时间执行指定的任务
- 调用下面的方法就会开启一个定时任务
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
每隔ti秒,调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个任务
- 通过invalidate方法可以停止定时器的工作,一旦定时器被停止了,就不能再次执行任务。只能再创建一个新的定时器才能执行新的任务
- (void)invalidate;
- 解决定时器在主线程不工作的问题
NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(next) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
封装控件知识点
-
initWithFrame
- 当控件通过代码创建时,就会调用这个方法
- 当控件通过代码创建时,想做一些初始化操作。应该在这个方法中执行
- (instancetype)initWithFrame:(CGRect)frame { if(self = [super initWithFrame:frame]){ // 添加子控件代码 [self setup]; } return self; }
-
awakeFromNib
- 当控件从xib\storyboard中创建完毕时,就会调用这个方法
- 当控件从xib\storyboard中创建完毕后的初始化操作。应该在这个方法中执行
- (void)awakeFromNib { // 添加子控件代码 [self setup]; }
-
initWithCoder
- 当控件是通过xib\storyboard创建时,会调用这个方法来初始化控件
- (instancetype)initWithCoder:(NSCoder *)aDecoder { if(self = [super initWithCoder:aDecoder]){ // 添加子控件代码 } return self; }
-
layoutSubviews
- 当控件的尺寸发生改变的时候,会自动调用这个方法
- (void)layoutSubviews { [super layoutSubviews]; // 更改frame代码 }
分页知识点
- 一句话移除全部控件
// 移除之前的所有imageView
// 让subViews数组中的所有对象都执行removeFromSuperiview
[self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];