我有一个scrollView,在该scrollView上,我有很多标签和textView以及一个tableView。当没有时,scrollView工作正常。 tablView中的行数较少,但如果tableView有更多的行数,那么我无法获得完整的内容,甚至我在tableView中丢失了大量信息,因为tableView不可滚动。我添加了所有的标签,textView和tableView作为scrollview的子视图。任何人都可以帮助我,所以我可以获得完整的tableView并使其适当滚动。
以下是我设置scrollView内容大小的代码。
float maxHeight = 0;
for(UIView *v in [self.scrollView subviews]){
if(v.frame.origin.x + v.frame.size.height > maxHeight)
maxHeight = v.frame.origin.x + v.frame.size.height;
}
self.scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width, maxHeight+100);
答案 0 :(得分:2)
tableview是一个滚动视图子类,通常Apple称将其添加到另一个滚动视图会导致问题。那说有办法让它发挥作用。在这里或谷歌搜索“如何在uiscrollview中放置uitableview”这样的术语。
编辑:要使其不可滚动,您可以在表视图上放置一个透明视图来停止或触发触摸事件。
答案 1 :(得分:2)
首先,您需要调整表格的大小,使其适合所有行(因为正如您所说,它不可滚动)。我相信这样做会使你的所有行都不能重复使用,所以如果它是一个大表,你可能会遇到性能问题。还要注意@David H的答案,所以如果你真的想这样做,你可能更好地使用另一个UIScrollView
而不是UITableView
(它不会带来任何好处)。
其次,您需要移动tableview下方的所有视图,以便它们不会重叠。一个简单的方法是将这些视图放在一个不同的视图中,这样你只需要移动一个视图(在这种情况下,你还需要相应地调整该视图的大小)。
最后,不是循环遍历所有scrollview
的子视图,而是应该很容易跟踪最接近底部的视图(这取决于您如何生成视图并将视图添加到滚动视图)。
答案 2 :(得分:0)
self.scrollingView.contentSize = CGSizeMake(320372);
试试这个。