为什么UITableView总是可以滚动,但UIScrollView不能

时间:2014-12-18 12:48:07

标签: ios objective-c iphone uitableview uiscrollview

无论UITableView的内容大小如何,它都可以随时滚动。但现在我想UIScrollView也喜欢它.......

首先,我使用这样的代码:

self.scrollView.contentSize = CGSizeMake(0, self.view.frame.size.height - 63);

它确实有效,但现在我使用AutoLayout,它说我必须确定内容大小。

应用程序必须适应iPhone4~iPhone 6 Plus,因此内容大小无法确定,它总是小于屏幕减去1,就像这样(因为状态栏和导航栏接管64像素)

self.scrollView.contentSize = CGSizeMake(0, self.view.frame.size.height - 63);

顺便说一句,如果我不确定大小,并在- (void)viewDidLoad中编写此代码,而Xcode只是加热编译它,不会影响APP的运行。

我希望你能给我一些更好的方法。

2 个答案:

答案 0 :(得分:2)

我已经解决了这个问题,只需添加这个scrollView.alwaysBounceVertical = YES,然后我可以滚动ScrollView,无论框架内的内容是否

答案 1 :(得分:0)

首先,我几乎不明白你想要什么。

现在技术部分:

  1. 这不是一个好习惯,地狱,你永远不应该改变UITableView的内容大小,UITableView总是根据heightFirRowAtIndexPath计算他的内容大小,heightForHeader...以及其他heightFor...方法,这就是表格滚动的原因(当然,如果方法正确实施的话)

  2. UIScrollview不会自行计算内容大小,因为它不是那样设计的,因此您必须为其指定内容大小。通常当UIScrollView没有滚动它时,因为它contentSize小于滚动的帧大小所以它不需要滚动。

  3. 使用自动布局实现UIScrollView它有点棘手,你必须做一些调整,但Apple提供了一些例子here你应该怎么做。另外一点谷歌搜索将找到大量关于如何做的例子。