我正在使用 iOS6 和 Xcode 4.5.2。使用故事板,我创建了以下图表:
这是我目前在我的代码流中所做的:
1)我以这种方式在.h文件中声明UITableView对象:
@property (weak, nonatomic) IBOutlet UITableView *tablePOI;
2) 由于我使用来自网络请求的数据填充 UITableView,因此我事先不知道 UITableView 框架的高度。在情节提要中,我将 UITableView 框架高度初始化为 260f。
3) 我在 viewDidLoad 函数中获取 Web 数据,然后填充 UITableView 并为其设置一个新的框架和 contentSize。在此之后,我以这种方式为 UIScrollView 组件设置 contentSize:
[self.tablePOI setFrame:CGRectMake(0, 100, 320, 800)];
[self.tablePOI setContentSize:CGSizeMake(320, 800)];
[self.scrollView setContentSize:CGSizeMake(320, 800)];
问题是 UITableView 被剪切到之前在情节提要中初始化的高度(260f),因此 UIScrollView 不会滚动,而只是弹跳。
使用具有动态高度的 UITableView 组件时如何获得滚动?
PS。我还考虑过在不使用情节提要的情况下通过代码生成 UITableView 组件,但是使用这种方法,我必须将 UITableView 声明为保留,然后我必须管理内存分配。我真的不想这样(dealloc 已被弃用)。