2天的时间算是勉强的把第05天的视频给看完。
第05天的内容主要是学习scrollView,切入正题。
1、UIScrollView的3个重要属性:
contentSize 设置屏幕滚动的范围 用CGSizeMake 赋值
contentInset 设置scroll与view的间距 用UIEdgeInsetsMake 赋值 (上下左右,四个间距)
contentOffset 设置滚动内容的偏移 用CGPointMake来设置
2、隐藏scrollView的滚动条:
纵向
self.scrollView.showsVerticalScrollIndicator = NO;
横向
self.scrollView.showsHorizontalScrollIndicator = NO;
关闭弹簧效果
self.scrollView.bounces = NO;
3、 contentOffset的简单应用:
- (IBAction)GoClick {
// 记录位置
CGPoint offset = self.scrollView.contentOffset;
#pragma mark -- record
// X轴向左偏移
offset.x -= 50;
// 点击后,向左偏移并带动画方式
[self.scrollView setContentOffset:offset animated:YES];
}
// 去掉电池图标
- (BOOL)prefersStatusBarHidden
{
return YES;
}
CGFloat h = CGRectGetMaxY(self.lastView.frame) + 10;
2.>
- (void)goNextImage
{
// 获得当前的页码
NSUInteger curPage = self.pageControl.currentPage;
#pragma mark -- record
// 如果是最后一页重新播放
if (curPage == self.pageControl.numberOfPages - 1) {
curPage = 0;
} else {
curPage++;
}
// 正在滚动的时候
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
int page = (scrollView.contentOffset.x + scrollView.frame.size.width / 2) / scrollView.frame.size.width;
// 当前滚动的图片
self.pageControl.currentPage = page;
}
//1 定义代理的协议
//2 定义代理属性
//3 调用代理的方法(通知) 给代理发送消息
//1 让某个类遵守代理协议
//2 实现代理方法
//3 设置代理属性
7、scrollView分页、pagecontrol属性:
// 设置分页
self.scrollView.pagingEnabled = YES;
// 设置pagecontrol
self.pageControl.numberOfPages = count; numberOfPages代表有多少页
8、定时器,消息循环:
// 封装代码
- (void)addMyTimerObj
{
#pragma mark -- record
// 设置定时器
NSTimer *timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(goNextImage) userInfo:nil repeats:YES];
// 设置消息循环
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
[runloop addTimer:timer forMode:NSRunLoopCommonModes];
// 给myTimer赋值
self.myTimer = timer;
}
// 点击时停止连播
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.myTimer invalidate];
}
// 松开手时继续连播
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(goNextImage) userInfo:nil repeats:YES];
}
// 取消跟用户的交互
superView.userInteractionEnabled = NO;
// 打开跟用户的交互
superView.userInteractionEnabled = YES;
// 设置动画及延迟效果
[UIView animateWithDuration:1.0 animations:^{
tipLabel.alpha = 0.8;
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 delay:3 options:UIViewAnimationOptionCurveLinear animations:^{
tipLabel.alpha = 0;
} completion:^(BOOL finished) {
[tipLabel removeFromSuperview];
// 打开跟用户的交互
superView.userInteractionEnabled = YES;
}];
}];
// 设置属性
// 居中
tipLabel.textAlignment = NSTextAlignmentCenter;
tipLabel.backgroundColor = [UIColor grayColor];
// 透明
tipLabel.alpha = 0;
// 圆角
tipLabel.layer.cornerRadius = 5;
tipLabel.layer.masksToBounds = YES;
// 实现代理方法
- (void)appInfoViewDidClickDownload:(ZGAppInfoView *)appInfoView
{
[ZGLabel showLabel:self.view appName:appInfoView.appInfo.name];
}