sizeToFit
を私のビューの1つに呼び出すと、iOSフレームワークが最初にsizeThatFits
を呼び出し、その後layoutSubviews
を呼び出していることがわかりました。私のsizeThatFits
での計算が私のlayoutSubviews
の結果に依存するので、これは私には問題があります。次の例では、サブビューはlayoutSubviews
に調整され、このサブビューの高さはsizeThatFits
で使用されます。現在、私のコードは動作していないので、注文は元に戻ります。私のビューコントローラののviewDidLoadでsizeThatFitsより前にlayoutSubviewsを呼び出す方法を教えてください。
:私の見解では
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