當我在我的某個觀點上致電sizeToFit
時,我注意到iOS框架首先在該視圖上調用sizeThatFits
,然後調用layoutSubviews
。這對我來說是有問題的,因爲我的sizeThatFits
中的計算取決於我的layoutSubviews
的結果。在以下示例中,子視圖的調整值爲layoutSubviews
,此子視圖的高度用於sizeThatFits
。目前我的代碼不工作,順序顛倒。如何在sizeThatFits之前調用layoutSubviews?
在我的視圖控制器的viewDidLoad:
UIView* header = [[MyHeader alloc] init];
[header sizeToFit];
self.tableView.tableHeaderView = header;
[header release];
筆者認爲:
- (void) layoutSubviews {
[super layoutSubviews];
[self.subView sizeToFit];
}
- (CGSize) sizeThatFits:(CGSize)size {
return CGSizeMake(
self.frame.size.width,
self.subView.frame.size.height
);
}
你有沒有解決過這個問題? –
在你的第一個代碼中,你調用'[header sizeToFit]'它什麼都不做,它不會覆蓋'MyHeader'的'sizeThatFits:'不被覆蓋: >這個方法的默認實現返回視圖邊界矩形的大小部分。 – Rivera