【IOS学习之常见问题】UIScrollView 不能滑动(ScrollView has ambiguous scrollable content height)
2017-09-27 12:40
477 查看
█ 问题重现:
● UIScrollView 无下拉效果:● 界面布局:
● constraint(约束)参数:
● 显示界面:
@property (weak,nonatomic) IBOutlet UIScrollView *ScrollView; - (void)viewDidLoad { [super viewDidLoad]; self.ScrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height+300); //self.ScrollView.scrollEnabled = YES;//有没有,效果一样 //下拉刷新 [self.ScrollView addPullToRefreshWithActionHandler:^{ [self loadData:NO]; }]; [self loadData:YES]; }
● 出现的问题:上下拉,没反应。
█ 问题原因:
● 有下拉效果:● 有下拉效果:
● 无下拉效果:
█ 解决方法:
● UIScrollView 的 ContentSize要大于初始化时的frame的尺寸self.ScrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height+300);
● UIScrollView 的 ContentSize 尺寸要明确:
○ UIScrollView 要和包含的View之间的上下左右距离要明确
█ 最终答案:
● 对UIScrollView底部和 View1/View2底部加个距离限制,但是限制不能为0。█ 相关资料收集:
1.实时显示iOS编写UI代码效果
一、编写iOS应用UI的方式大概有两种,一种是Storyboard/Xib,另一种是手写代码。 1.Storyboard/Xib面临一个问题就是多人协作开发,由于所有的UI都放在同一个Storyboard文件中,使用Git/SVN合并代码就会出现冲突。代码复用性比较差 2.手写UI代码,每次都要编译、构建和运行,最后在模拟器显示,这样会拖慢开发速度。 二、Auto Layout是一个基于constraint(约束)的布局系统,它根据UI元素之间约束关系来调整UI元素的位置和大小。 1.更容易适配不同分辨率设备的屏幕(iPhone 6 Plus, iPhone 6, iPhone 5s/5, iPhone 4s/4)。 2.当设备旋转时不需要做额外处理。 3.使用constraint来描述布局逻辑,更利于理解和清晰。 三、Auto Layout在布局view方面是非常强大和灵活,但是创建constraint的语法过于繁杂。 1.采用Visual Format Language (VFL),虽然语法比较简洁,但是可读性比较差和容易出错。 2.Masonry是采用链式DSL(Domain-specific language)来封装NSLayoutConstraint,通过这种方式编写Auto Layout布局代码更加易读和简洁。 |
2.ScrollView 与 Autolayout
看到 Storyboard 错误提示:ScrollView has ambiguous scrollable content height。这是怎么一回事呢? UIScrollView 有一个 contentSize 属性,其定义了 ScrollView 可滚动内容的大小。在以前用纯代码写的时候,我们会直接对这个属性赋值,定义其大小。但在 Autolayout 下,UIScrollView 的 contentSize 是由其内容的约束来定义的。因此,我们在 ScrollView 里面设置的约束,不仅起到布局内容的作用,同时也起到了定义 ScrollView 可滚动范围的作用。 contentSize 的高度是多少?我们缺少一个定义 View 到 ScrollView 底部距离的约束 |
3.UIScrollView不能滚动
UIScrollview手动写的代码,滚动的相关属性都设了,可它就是不能滚动。原来是因为ContentSize跟初始化时的frame都设成了一样大。应该是frame高度要小于ContentSize的。 |
4.iOS 里 UIScrollView 不能滚动到最下方
1.UIScrollView 的frame设置有问题, 我设置为屏幕的大小, 所以显示不完全, 应该设置为 中间mainView的高度。 2.Scrollview的contentSize跟状态栏、导航条、tab条这些控件没有关系。把scrollview想象成一个窗户,窗户的大小是scrollview.frame,窗外世界的大小就是contentSize,世界的大小跟窗台、窗框这些窗户之外的东西大小没关系。 3.如果你的scrollview滚不到图片的边缘,那么比较大的可能是contentSize设小了,另一种可能就是scrollview的frame设大了,被下面的tabbar挡住了一部分。当然也可能是contentOffset或者contentInset引起的,但估计你没有修改这两个值。 |
http://blog.csdn.net/ljb568838953/article/details/78111588
相关文章推荐
- IOS Scroll View has ambiguous scrollable content height / width
- ios has ambiguous scrollable content height
- iOS学习笔记---UIScrollView 常见属性 不能滚动 常见代理方法
- iOS UIScrollView的使用及其不能滑动问题解决
- iOS 学习笔记 UIScrollView 宽度问题
- iOStableView 自动布局常见问题之页面滑动到最底时,下面多出44的距离!
- ios开发 解决ios6中UIScrollView不能滚动的问题
- iOS 关于UIScrollView 的contentOffset.y 下移64的问题
- iOS xib创建UIScrollView不滑动问题解决
- 解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)
- ios开发问题,经验证,textview的contentsize.height不能准确判断高度
- do you have "has ambiguous scrollable content width and height"
- iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题
- 【IOS学习之常见问题】使用表格(tableView)时,分割线/下划线时,长度不全
- IOS中的frame 和 tableView的滑动问题
- IOS学习日志---1:TableView下拉刷新以及各种失败问题总结
- Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
- ios滚动UIScrollView的setContentOffset方法
- IOS学习笔记(7)UIButton UIImageView UIScrollView UIWebView
- cocostudio学习之有关UIScrollView控件的一个问题