use*_*945 7 objective-c uitableview ios
我有一个使用该heightForRowAtIndexPath:方法的不同单元格高度的tableview .
我想动态设置一个高度UITableView.目前我正在viewDidLoad使用以下方法设置tableView的尺寸:
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 770, 310, 400)];
self.tableView.dataSource = self;
self.tableView.delegate = self;
Run Code Online (Sandbox Code Playgroud)
我想也许我可以添加这个:self.tableView.contentSize.height;但问题当然是内容大小只在表加载后计算,所以如果我把它放入
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 770, 310, self.tableView.contentSize.height)];
Run Code Online (Sandbox Code Playgroud)
它不起作用.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *description = [photosFromCommentsArray objectAtIndex:indexPath.row];
// NSLog(@"description is %@",description);
if(description == (id)[NSNull null])
{
return 70;
}
else
{
return 200;
}
}
Run Code Online (Sandbox Code Playgroud)
wat*_*n12 19
在表视图上添加contentSize属性的观察者,并相应地调整框架
[self.tableView addObserver:self forKeyPath:@"contentSize" options:0 context:NULL];
Run Code Online (Sandbox Code Playgroud)
然后在回调中:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
CGRect frame = self.tableView.frame;
frame.size = self.tableView.contentSize;
self.tableView.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9324 次 |
| 最近记录: |