iOS滚动视图UIScrollView使用方法
2023-03-15 23:19:01 时间
滚动视图还满常见的,这里学习了一下基本所有的用法、属性设置和委托,单讲一个ScrollView也很简单,直接上代码远比一个个讲要清晰明了地多。
//.h文件
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
//.m文件
//初始化ScrollView,设定位置
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
self.scrollView.backgroundColor = [UIColor greenColor];
//设置显示内容的大小,这里表示可以下滑十倍原高度
self.scrollView.contentSize = CGSizeMake(320, 460*10);
//设置当滚动到边缘继续滚时是否像橡皮经一样弹回
self.scrollView.bounces = YES;
//设置滚动条指示器的类型,默认是白边界上的黑色滚动条
self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;//还有UIScrollViewIndicatorStyleBlack、UIScrollViewIndicatorStyleWhite
//设置是否只允许横向或纵向(YES)滚动,默认允许双向
// self.scrollView.directionalLockEnabled = YES;
//设置是否采用分页的方式
// self.scrollView.pagingEnabled = YES;
//设置是否允许滚动
// self.scrollView.scrollEnabled = NO;
//设置是否可以缩放
self.scrollView.maximumZoomScale = 2.0;//最多放大到两倍
self.scrollView.minimumZoomScale = 0.5;//最多缩小到0.5倍
//设置是否允许缩放超出倍数限制,超出后弹回
self.scrollView.bouncesZoom = YES;
//设置委托
self.scrollView.delegate = self;
[self.view addSubview:self.scrollView];
//创建两个label显示在ScrollerView中,第二个要滚动才能看见
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 200, 320, 40)];
label.backgroundColor = [UIColor yellowColor];
label.text = @"Study UIScrollView";
[self.scrollView addSubview:label];
UILabel *secondLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 800, 320, 40)];
secondLabel.backgroundColor = [UIColor yellowColor];
secondLabel.text = @"Next Label";
[self.scrollView addSubview:secondLabel];
//委托方法
#pragma mark - UIScrollViewDelegate
//返回缩放时所使用的UIView对象
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return scrollView;
}
//开始缩放时调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
}
//结束缩放时调用,告知缩放比例
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
}
//已经缩放时调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
}
//确定是否可以滚动到顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
return YES;
}
//滚动到顶部时调用
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
}
//已经滚动时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
}
//开始进行拖动时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
}
//抬起手指停止拖动时调用,布尔值确定滚动到最后位置时是否需要减速
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
}
//如果上面的方法决定需要减速继续滚动,则调用该方法,可以读取contentOffset属性,判断用户抬手位置(不是最终停止位置)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
}
//减速完毕停止滚动时调用,这里的读取contentOffset属性就是最终停止位置
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
}
这里在view中添加了一个设置了大小的ScrollView,在ScrollView中添加了两个Label,两个Label的开始y值不同所以第一个一开始就能看见,而第二个要向下滚动才能看见,如图:
由于截图时间来不及所以第二张图看不到滚动条了,但是是滚动下来才能看得见:
基本方法代码中的注释已经讲的很清楚了,如果有不太清楚的可以自己试着调一下,也可以一起讨论讨论~
可以在github上下载我的工程:https://github.com/Cloudox/UIScrollViewTest
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十