Bu çözümlerin hiçbiri iPad'de çalışmıyor, ancak her iki cihazı da kapsayan bir çözüm buldum:
Yeniden kullanılabilir hücrelerle:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
...[other code]...
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
return cell;
}
Yeniden kullanılamayan hücrelerle:
- (void)removeSeparatorInset:(UITableView*)tableView{
NSArray *cells = [tableView visibleCells];
for (UITableViewCell *cell in cells){
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
}
}
-(void) viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
[self removeSeparatorInset:self.tableView];
}
Sadece bu yaklaşımı genişletmek için:
@property(nonatomic) UIEdgeInsets separatorInset;
@property(nonatomic) UIEdgeInsets layoutMargins;
Her iki özellik de UITableView
& tarafından kullanılabilir UITableViewCell
. İkincisi, aslında, bir özelliği UIView
, her ikisi de bir üst sınıf olan UITableView
ve UITableViewCell
.
UITableView
özelliği vardırseparatorInset
.UITableView
Çizgi ayırıcısının iç kısmını sıfıra ayarlayın. AyrıcaseparatorInset
film şeridinden değiştirebilirsiniz