iOS 7 UITableView:它是一个bug还是我?

时间:2014-03-22 01:09:05

标签: ios uitableview uikit

请参阅附图。在iOS 7的表格视图中,UIKit在附件视图和重新排序控件之间绘制一条细灰色垂直线。但是,当滚动表视图时,不会在某些单元格中绘制此行。在附图中的单元1,2和8中不存在。为什么是这样?我该如何解决?

enter image description here

4 个答案:

答案 0 :(得分:6)

我在iphone 6s plus上遇到同样的问题并解决了将单元格textLabel的backgroundColor设置为clearColor

MyService

reveal查看我的问题,向我显示标签的右边框正在绘制此垂直线。 enter image description here

答案 1 :(得分:4)

您可以使用

尝试此操作
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
{
    cell.backgroundColor=[UIColor clearColor];
    cell.backgroundView=nil;
}

这种方法可能会有所帮助,或者可能在某些图片或其他内容中出现在您的单元格中。 或者您可以使用这样的单元格分配来检查 if if(cell == nil)而不是if(1)和alloc cell eveytime

答案 2 :(得分:1)

我有同样的问题并设法找到解决方法。当表视图处于编辑模式时,问题似乎发生,并且在表视图处于非编辑模式时将排队的单元格出列。解决方法是在将单元格的编辑属性出列后立即将其设置为NO。 在tableView:cellForRowAtIndexPath中返回单元格后,表视图将自动将此属性设置为YES:。

cell = [tableView dequeueReusableCellWithIdentifier:cellReuseIdentifier forIndexPath:indexPath];
cell.editing = NO;

答案 3 :(得分:1)

这适用于Swift 2.1。在iOS 9.2.1上。在XCode 7.2中: 我测试了iPhone 6s上的代码,而在4"设备分隔符不会出现。

我已经创建了UITableViewCell

的子类

required init(coder aDecoder: NSCoder)内部我已经这样做了:

required init(coder aDecoder: NSCoder)
{
    super.init(coder: aDecoder)!
    self.textLabel?.backgroundColor = UIColor.clearColor()
}

您可能会发现需要在override func drawRect(rect: CGRect) {}中设置背景颜色,因为此解决方案仅适用于“接口”构建器创建的单元格。

该解决方案适用于开发和模拟器。