내 의견 중 하나에서 sizeToFit
으로 전화하면 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