Görünümlerimden birinde sizeToFit
numaralı telefonu aradığımda, iOS çerçevesinin bu görünümde önce sizeThatFits
ve daha sonra layoutSubviews
numarasını aradığını fark ettim. Bu benim için sorunlu çünkü benim sizeThatFits
hesabımdaki hesaplama benim layoutSubviews
'un sonuçlarına bağlıdır. Aşağıdaki örnekte, bir alt görünüm layoutSubviews
'da ayarlanır ve bu alt görüntünün yüksekliği sizeThatFits
'da kullanılır. Şu anda kodum çalışmıyor, sipariş tersine döndü. Benim bakış kontrolörün viewDidLoad yılındalayoutSubviews, sizeThatFits'den önce çağrılacak nasıl?
:
UIView* header = [[MyHeader alloc] init];
[header sizeToFit];
self.tableView.tableHeaderView = header;
[header release];
Bence:
- (void) layoutSubviews {
[super layoutSubviews];
[self.subView sizeToFit];
}
- (CGSize) sizeThatFits:(CGSize)size {
return CGSizeMake(
self.frame.size.width,
self.subView.frame.size.height
);
}
Bu sorunu daha önce çözdünüz mü? –
İlk kodunuzda '[header sizeToFit]' işlevini görürsünüz ki bu hiçbir şey yapmaz 'MyHeader'ın' sizeThatFits: 'geçersiz kılmıyor: > Bu yöntemin varsayılan uygulaması, görünümün sınır dikdörtgeninin boyut bölümünü döndürür. – Rivera