Tidak satu pun dari solusi ini yang berfungsi pada iPad, tetapi saya telah menemukan solusi yang mencakup kedua perangkat:
Dengan sel yang dapat digunakan kembali:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
...[other code]...
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
return cell;
}
Dengan sel yang tidak dapat digunakan kembali:
- (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];
}
Untuk memperluas pendekatan ini:
@property(nonatomic) UIEdgeInsets separatorInset;
@property(nonatomic) UIEdgeInsets layoutMargins;
Kedua properti dapat digunakan oleh UITableView
& UITableViewCell
. Yang terakhir adalah, pada kenyataannya, properti dari UIView
, yang merupakan kelas induk dari keduanya UITableView
& UITableViewCell
.
UITableView
memiliki propertiseparatorInset
. Atur insetUITableView
pemisah garis ke nol. Anda juga dapat mengubahseparatorInset
dari storyboard