【发布时间】:2015-03-21 10:06:24
【问题描述】:
一些 S.O.问题展示了一种自动布局技术,用于确定视图满足其约束所需的最小尺寸:[header systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]
在拨打systemLayoutSizeFittingSize: 之前,我见过的所有示例都会强制更新布局,如下所示:
[view setNeedsLayout];
[view layoutIfNeeded];
CGFloat height = [view systemLayoutSizeFittingSize: UILayoutFittingCompressedSize].height;
我想知道什么时候真的有必要这样做,因为它似乎是一种仪式调味品:我想了解我为什么打电话,而不是为了运气!
我刚刚在一些代码中使用了systemLayoutSizeFittingSize:,在其中我有选择地更新了UITableView 实例的tableViewHeader(不是节标题)的视图,然后调整它的大小。如果没有额外的电话,它似乎可以正常工作。我的viewDidLoad 中有这个:
{
// Remove the view that we don't want.
[self.autoPopulateView removeFromSuperview];
// Resize the table's header view now the unwanted view is removed.
UIView *const header = self.tableView.tableHeaderView;
// Don't explicitly layout.
// [header setNeedsLayout];
// [header layoutIfNeeded];
CGFloat height = [header systemLayoutSizeFittingSize: UILayoutFittingCompressedSize].height;
CGRect frame = header.frame;
frame.size.height = height;
header.frame = frame;
}
谢谢。
【问题讨论】:
-
我正在调查同样的事情,有没有得出结论?谢谢!
-
:-) 不!我很确定我读过一些相关的东西,但我现在找不到。我考虑过给它一个赏金,但我不确定我是否那么在意它。对不起。
标签: uiview autolayout