Không có giải pháp nào trong số này hoạt động trên iPad, nhưng tôi đã đưa ra một giải pháp bao gồm cả hai thiết bị:
Với các tế bào có thể tái sử dụng:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
...[other code]...
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
return cell;
}
Với các tế bào không thể tái sử dụng:
- (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];
}
Chỉ cần mở rộng về phương pháp này:
@property(nonatomic) UIEdgeInsets separatorInset;
@property(nonatomic) UIEdgeInsets layoutMargins;
Cả hai thuộc tính có thể được sử dụng bởi UITableView
& UITableViewCell
. Trên thực tế, thứ hai là một thuộc tính của UIView
, là lớp cha của cả hai UITableView
& UITableViewCell
.
UITableView
có một tài sảnseparatorInset
. Đặt phần nhỏ củaUITableView
dấu phân cách dòng thành 0. Ngoài ra, bạn có thể thay đổiseparatorInset
từ bảng phân cảnh