Sal*_*rtz 1 iphone uitableview uiscrollview uiview ios
我有一个uiscrollview的uiview作为笔尖的子视图。然后,我将另一个uiview与uitableview一起加载为该另一个uiview的子视图(此视图内的其他元素)作为uiscrollview的子视图。
也就是说,UISCrollView-> UIView-> UITableView(以及UIView内部的其他一些视图)。
我需要执行以下操作:
一旦知道了tableview的最终高度(取决于单元格的数量和它们的高度),我就需要调整包含它的uiview的大小,并相应地调整包含scrollview的contentSize属性的大小。
但是我不知道tableview的最终大小在哪一点(因为它可以根据其单元格所容纳的文本量来动态更改大小),我也不知道tableview会比uiview超出多少(默认为320 x 460)。
我试过在viewdidload上将包含tableview的视图设置为900的高度,并将其设置为sizeToFit,希望当将tablecell添加到tableview时,它会缩小(假设在添加cell的情况下tableview的框架会适当缩放)。但这似乎不起作用。
有什么想法吗?谢谢!
我只是遇到了类似的情况(UIScrollView-> UITableView),并且在数小时内一直不停地动脑筋。简短的答案是这样的:在发送ViewController(控制UIScrollView)之前,没有可用的正确大小作为尺寸调整的基础viewWillAppear:。在此之前,我发现这些值已设置,但通常是错误的。(例如,我在做这第一次尝试中viewDidLoad:,和值大小都发生变化,因此,但他们错了!)
因此,我的解决方案是:
viewDidLoad:您事业封闭的UITableView到reloadData一旦你有到位您的数据。在viewWillAppear:执行以下操作(假定tableView是封闭的UITableView和scrollView是封闭的UIScrollView):
tableView.frame = (CGRect){
tableView.frame.origin,
tableView.contentSize
};
// Finally, set content size based on the last element in the scrollView
// in my case, the last element IS the tableView, yours might be different
scrollView.contentSize =
CGSizeMake(scrollView.width
- scrollView.contentInset.left
- self.scrollView.contentInset.right,
tableView.top
+ tableView.height);
Run Code Online (Sandbox Code Playgroud)注意:我之前检查过这些数字时会发现一些非常奇怪的数字viewWillAppear:;例如,tableView.contentSize似乎是默认rowHeight *行数的乘积,忽略了我的自定义行高并排除了任何分隔符!很奇怪。
| 归档时间: |
|
| 查看次数: |
4835 次 |
| 最近记录: |