0

我有一个scrollView,在那个scrollView 上,我有许多标签和textView 以及一个tableView。当没有时,scrollView 工作得很好。tablView 中的行数较少,但如果 tableView 有更多的行数,那么我无法完整内容,甚至我在 tableView 中丢失了很多信息,因为 tableView 不可滚动。我已将所有标签、textView 和 tableView 添加为滚动视图的子视图。任何人都可以帮助我,这样我就可以获得完整的 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);
4

3 回答 3

2

首先,您需要调整表格的大小,使其适合所有行(因为正如您所说,它不可滚动)。我相信这样做会使你的所有行都不能重用,所以如果它是一个大表,你可能会遇到性能问题。还要注意@David H的回答,所以如果你真的想这样做,你最好使用另一个UIScrollView而不是UITableView(它不会带来太多好处)。

其次,您需要移动 tableview 下方的所有视图,以使它们不会重叠。一种简单的方法是将这些视图放在不同的视图中,这样您只需要移动一个视图(但是,在这种情况下,您还需要相应地调整该视图的大小)。

最后,不是循环遍历所有scrollview的子视图,而是应该很容易跟踪最接近底部的视图(这取决于您如何生成视图并将其添加到滚动视图)。

于 2013-05-29T11:27:59.433 回答
2

一个 tableview 是一个滚动视图子类,通常苹果说将它添加到另一个滚动视图会导致问题。也就是说,有办法让它发挥作用。在此处或在 google 上搜索诸如“如何将 uitableview 放入 uiscrollview”之类的术语。

编辑:为了使它不可滚动,您可以在停止或吃触摸事件的表视图上放置一个透明视图。

于 2013-05-29T11:15:35.997 回答
0

self.scrollingView.contentSize=CGSizeMake(320,372);

尝试这个。

于 2013-05-29T11:17:04.650 回答