作者:galsu99 | 来源:互联网 | 2023-05-28 12:09
我有一个iOS 8应用程序,我有一个搜索结果页面,每个单元格根据某个标签的高度进行自动调整.但是,在视图首次加载后,显示的单元格不会自动调整大小.向下滚动后面的单元格大小正确.我在故事板中连接了自动布局约束.我在viewDidLoad中有以下代码.
- (void)viewDidLoad {
[super viewDidLoad];
//configure tableView so that we use autolayout enabled row heights
self.tableView.estimatedRowHeight = 68;
self.tableView.rowHeight = UITableViewAutomaticDimension;
}
还有其他人经历过这个吗?
1> rdelmar..:
是的,我在故事板中制作视图和约束时看到了同样的问题(但没有添加代码添加视图).我通过在自定义单元类中添加此代码来修复此问题,
-(void)didMoveToSuperview {
[self layoutIfNeeded];
}
这可能会去其他地方,但这种方法似乎只被调用一次,所以我认为这是一个很好的地方.
2> Sihad Begovi..:
rdelmar的答案对我不起作用.
我所做的是添加了这段代码:
[tableView setNeedsLayout];
[tableView layoutIfNeeded];
[tableView reloadData];
获取数据并[tableView reloadData]
调用第一个数据后,在我的情况下,它位于viewDidLoad
我的View Controller的方法中.
所以结果代码是:
NSArray *fetchedData = ...
[tableView reloadData]; //Fist table reload
[tableView setNeedsLayout];
[tableView layoutIfNeeded];
[tableView reloadData]; //Second table reload
这个答案来自这里:http://useyourloaf.com/blog/self-sizing-table-view-cells.html#comment-1783719287