IOS scrollview在开发中遇到的问题。
来源:互联网 发布:java培训机构哪里好 编辑:程序博客网 时间:2024/06/01 16:26
最近在项目开发的时候在用autolayout的scrollview布局的时候遇到了一些问题。
关于scrollview内部子view约束的设置 上下左右宽高都要设置好,否则会有红色的警告,觉得可以先这样设置好,通过动态修改约束更改布局。
UIScrollView 有一个 contentSize 属性,其定义了 ScrollView 可滚动内容的大小。在以前用纯代码写的时候,我们会直接对这个属性赋值,定义其大小。但在 Autolayout 下,UIScrollView 的 contentSize 是由其内容的约束来定义的。因此,我们在 ScrollView 里面设置的约束,不仅起到布局内容的作用,同时也起到了定义 ScrollView 可滚动范围的作用。
A.这个时候获取下ScrollView的contentSize和ScrollView的frame,在获取下ScrollView内部子view的frame。
- (IBAction)getsize:(id)sender {
CGSize sz =_theUIScrollView.contentSize;
CGRect rc =_scrollViewInsertUIView.frame;
CGRect rec =_theUIScrollView.frame;
NSLog(@"theUIScrollView.contentSize%f - %f",sz.width,sz.height);
NSLog(@"_scrollViewInsertUIView.frame%f - %f",rc.size.width,rc.size.height);
NSLog(@"_theUIScrollView.frame%f - %f",rec.size.width,rec.size.height);
return;
}
2016-01-08 12:08:10.954 test[28758:12147261] theUIScrollView.contentSize150.000000 - 250.000000
2016-01-08 12:08:10.954 test[28758:12147261] _scrollViewInsertUIView.frame150.000000 - 250.000000
2016-01-08 12:08:10.955 test[28758:12147261] _theUIScrollView.frame300.000000 - 507.000000
可见UIScrollView contentSize 是由内部子view size 决定的,这时候无法拖拽因为contentSize < frame。
B.修改ScrollView内部子view的trailing 为300 这时log的结果为
2016-01-08 12:12:38.431 test[28861:12151150] theUIScrollView.contentSize450.000000 - 250.000000
2016-01-08 12:12:38.432 test[28861:12151150] _scrollViewInsertUIView.frame150.000000 - 250.000000
2016-01-08 12:12:38.432 test[28861:12151150] _theUIScrollView.frame300.000000 - 507.000000
可见UIScrollVie内部子view 的左右约束也会影响到contentSize,可以利用这个做一些效果,比如在scrollview的下边放一个空间,并且scrollview子view右边加约束就可以实现抽屉的的效果【用到相关接口 bringSubviewToFront(改变控件层级) sendSubviewToBack】。contentSize > frame 可以进行拖拽了。
C.更改scrollview内部子view的宽高,为600,800
2016-01-08 12:53:47.368 test[29497:12177087] theUIScrollView.contentSize600.000000 - 800.000000
2016-01-08 12:53:47.369 test[29497:12177087] _scrollViewInsertUIView.frame600.000000 - 800.000000
2016-01-08 12:53:47.369 test[29497:12177087] _theUIScrollView.frame300.000000 - 507.000000
contentSize > frame 可以进行拖拽了。- IOS scrollview在开发中遇到的问题。
- android中在scrollview中放置gridview遇到的问题
- 我在ios游戏开发中遇到的一些问题
- 在scrollview中嵌套GridView遇到的问题
- iOS中scrollview的在navigationbarcontroller中使用问题
- scrollview 中使用中遇到的问题
- IOS开发中遇到的问题总结
- IOS开发中经常遇到的问题
- 最近iOS开发中遇到的问题
- ios开发中遇到的奇葩问题
- ios生命周期开发中遇到的问题
- ios 开发中遇到的一些问题
- iOS 开发中遇到的小问题
- IOS开发中遇到的各种问题
- iOS开发过程中遇到的问题
- iOS开发中遇到的问题
- iOS开发中遇到的问题整理
- iOS 开发中遇到的问题
- eclipse断点有个斜杠 skip all breakpoints
- Comodo 龙浏览器下载
- tapestry调试,避免重复启动
- 注册 功能的实现
- Docker制作tomcat镜像简单实践
- IOS scrollview在开发中遇到的问题。
- 日经春秋 20160107
- 深度学习和机器学习资料分享
- 锁屏界大亨零花是如何吸引千万用户追捧的?
- virtualenv的使用
- 跟我一起写 Makefile(八)
- 开源中国Maven镜像配置
- Eclipse迁移到Studio遇到的那些坑
- placeholder在ie浏览器的兼容