ไม่มีวิธีแก้ปัญหาเหล่านี้ทำงานบน iPad แต่ฉันได้มากับโซลูชันที่ครอบคลุมอุปกรณ์ทั้งสอง:
ด้วยเซลล์ที่นำกลับมาใช้ใหม่ได้:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
...[other code]...
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
return cell;
}
ด้วยเซลล์ที่ไม่สามารถนำกลับมาใช้ใหม่ได้:
- (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];
}
เพียงเพื่อขยายวิธีการนี้:
@property(nonatomic) UIEdgeInsets separatorInset;
@property(nonatomic) UIEdgeInsets layoutMargins;
คุณสมบัติทั้งสองสามารถใช้งานUITableView
UITableViewCell
หลังเป็นในความเป็นจริงทรัพย์สินของUIView
ซึ่งเป็นระดับผู้ปกครองของทั้งสองและUITableView
UITableViewCell
UITableView
separatorInset
มีสถานที่ให้บริการ ตั้งค่าสิ่งที่แทรกของUITableView
ตัวแยกบรรทัดเป็นศูนย์ นอกจากนี้คุณสามารถเปลี่ยนseparatorInset
จากกระดานเรื่องราว