iOS 8:从UITableViewRowAction中删除下划线

时间:2015-01-06 06:57:05

标签: ios objective-c xcode uitableview swift

我一直用这个把头撞在墙上,所以也许有人在这里做过这件事。

无论如何,我正在尝试更改删除按钮在我的UITableView中的显示方式,而且我已经把它弄清楚了。我正在通过将背景颜色设置为我实际想要它的UIImage来改变它。

显然,UITableViewRowAction下面有一条微弱的灰线,我无法弄清楚如何让它消失。任何指针都将非常感激。这里有我正在谈论的内容的链接:

enter image description here

非常感谢!

2 个答案:

答案 0 :(得分:3)

这是UITableView的分隔线。您可以将其设置为无。

将其删除

目标C:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

夫特:

self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None

最初分隔线不可见,因为我认为在单元格中添加的图像或视图的高度超过了单元格高度。

这就是为什么当您滑动分隔线时可见。如果您在Simulator中进行测试而不是使用 Debug> Simultor的颜色混合层。这有助于跟踪重叠的视图。

enter image description here

编辑:

iOS 8.0为UITableView引入了 layoutMargins 。所以也可能是这样的原因。

有关详细信息,请查看此answer

它解释了通过将cell layoutMargins设置为UIEdgeInsetsZero来清除布局边距。

答案 1 :(得分:0)

cellForRowAtIndexPath方法

上试试
for iOS lower versions

 if(indexPath.row != self.newCarArray.count-1){
   UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 44, 320, 2)];
   line.backgroundColor = [UIColor redColor];
   [cell addSubview:line];
  }

适用于iOS 7上层版本

 if (indexPath.row == self.newCarArray.count-1) {
    cell.separatorInset = UIEdgeInsetsMake(0.f, 0.f, 0.f, cell.bounds.size.width);
 }