AutoLayout
Her yerde kullandığımı keşfettiğimden beri , şimdi onu bir tableHeaderView
.
Ben yapılan subclass
bir UIView
(etiketler vs ...) Sonra ben bu ilave, onların kısıtlamalarıyla istedik ilave her şeyi CustomView
için UITableView
' tableHeaderView
.
Her şey hariç sadece para cezası işleri UITableView
hep ekranlar üzerindeCustomView
, tarafından yukarıda demek CustomView
olduğunu altındanUITableView
o görülemez böylece!
Ne yaptığım olursa olsun, görünüyor height
ait UITableView
' tableHeaderView
olduğu hep (şimdiye genişlik, x ve y) 0.
Sorum: çerçeveyi manuel olarak ayarlamadan bunu başarmak mümkün mü?
DÜZENLEME:
Kullandığım CustomView
' subview
şu kısıtlamalara sahip:
_title = [[UILabel alloc]init];
_title.text = @"Title";
[self addSubview:_title];
[_title keep:[KeepTopInset rules:@[[KeepEqual must:5]]]]; // title has to stay at least 5 away from the supperview Top
[_title keep:[KeepRightInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepLeftInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepBottomInset rules:@[[KeepMin must:5]]]];
Kullanışlı bir kitaplık 'KeepLayout' kullanıyorum çünkü kısıtlamaları manuel olarak yazmak, tek bir kısıtlama için sonsuza kadar ve çok fazla satır alıyor, ancak yöntemler kendi kendini açıklıyor.
Ve UITableView
şu kısıtlamalara sahiptir:
_tableView = [[UITableView alloc]init];
_tableView.translatesAutoresizingMaskIntoConstraints = NO;
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.backgroundColor = [UIColor clearColor];
[self.view addSubview:_tableView];
[_tableView keep:[KeepTopInset rules:@[[KeepEqual must:0]]]];// These 4 constraints make the UITableView stays 0 away from the superview top left right and bottom.
[_tableView keep:[KeepLeftInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepRightInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepBottomInset rules:@[[KeepEqual must:0]]]];
_detailsView = [[CustomView alloc]init];
_tableView.tableHeaderView = _detailsView;
Bazı kısıtlamaları doğrudan üzerinde ayarlamam gerekip gerekmediğini bilmiyorum CustomView
, sanırım CustomView yüksekliğinin içindeki UILabel
"başlık" üzerindeki kısıtlamalar tarafından belirlendiğini düşünüyorum.
DÜZENLEME 2: Başka bir incelemeden sonra, CustomView'un yüksekliği ve genişliği doğru bir şekilde hesaplanmış gibi görünüyor, ancak CustomView'un üst kısmı hala UITableView'ın üst seviyesiyle aynı seviyede ve kaydırdığımda birlikte hareket ediyorlar.