我在UITableView中使用自定義單元格實現了一個奇怪的錯誤。iOS UITableView Bug - 每隔一個tableview單元格上的白線
每個其他單元在其底部都有一條白線。此行僅出現在iPhone 5和iPhone 6上。它不會在iPhone 6+上顯示。從iPhone 6模擬器(您可以看到該線路)和iPhone 6+模擬器(您沒有看到該線路)提供了兩個屏幕截圖。
我試過計算器上的每一個解決方案,但他們都不工作。也就是說,我已經添加了下面的方法來我的表視圖:
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
[cell setPreservesSuperviewLayoutMargins:NO];
}
if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[tableView setLayoutMargins:UIEdgeInsetsZero];
}
}
和下面的方法來我的自定義單元格:
- (UIEdgeInsets)layoutMargins {
return UIEdgeInsetsZero;
}
但該行仍看到其他各小區。任何想法如何擺脫這條線?謝謝!
你確定這是一個分隔符問題嗎?不在你的牢房裏? – almas
您可以嘗試爲單元格,tableView,視圖等設置不同的背景顏色,以準確找出白線的來源。 – almas