我正在使用iOS6和Xcode 4.5.2。 使用故事板我创建了以下图表:
以下是我目前在代码流程中所做的事情:
1)我以这种方式在.h文件中声明UITableView对象:
@property (weak, nonatomic) IBOutlet UITableView *tablePOI;
2)因为我使用来自Web请求的数据填充UITableView, 我事先并不知道UITableView Frame的高度。在故事板中,我初始化为260f UITableView Frame高度。
3)我在viewDidLoad函数中获取Web数据,然后填充UITableView并为其设置新的frame和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声明为retain,然后我必须管理内存分配。我真的不想这样(dealloc已被弃用)。