iOS 8:从 UITableViewRowAction 中删除下划线
Posted
技术标签:
【中文标题】iOS 8:从 UITableViewRowAction 中删除下划线【英文标题】:iOS 8: Remove Underline from UITableViewRowAction 【发布时间】:2015-01-06 06:57:04 【问题描述】:我一直在用这个把头撞到墙上,所以也许这里有人以前做过。
无论如何,我正在尝试更改删除按钮在我的 UITableView 中的外观,并且我已经大致弄清楚了。我通过将背景颜色设置为我真正希望它看起来像的 UIImage 来更改它。
不过,显然 UITableViewRowAction 下方有一条微弱的灰线,我不知道如何使它消失。任何指针将不胜感激。有一个链接指向我在这里谈论的内容:
非常感谢!
【问题讨论】:
【参考方案1】:这是UITableView
的分隔线。您可以通过将其样式设置为无来删除它。
目标 C:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
斯威夫特:
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
最初分隔线不可见,因为我认为在单元格中添加的图像或视图的高度大于单元格高度。
这就是为什么当您滑动分隔线时可见。如果您在模拟器中进行测试,请使用模拟器的 Debug > Color Blended Layers。这有助于跟踪重叠视图。
编辑:
ios 8.0 为 UITableView
引入了 layoutMargins。所以这也可能是原因。
查看此answer 了解更多信息。
它解释了通过将cell layoutMargins
设置为UIEdgeInsetsZero
来清除布局边距。
【讨论】:
其实不是这样,我一开始也是这么想的:/ 我已经这样做了,相信我,如果我不这样做,我可以看到分隔符,它们没有被掩盖。不过谢谢! “删除”按钮在这里看起来像自定义。因此,请检查该行是否由于自定义视图而可见。 它看起来不像是分隔线,基于this。自定义视图实际上是一个用作背景图像的 UIImage,它只是白色的。如果它不填充视图的行为是平铺,所以线不能来自那里。我真的认为它是 UITableViewRowAction 的一部分,但我找不到它在哪里。 从您的参考图像中可以清楚地看出它没有与视图线重叠。让我看看还有什么其他原因。 您是否指定了任何页脚视图或表格页脚视图。有时页脚视图线也会出现。在早期的 iOS 版本中,由于页脚视图,许多人都面临过底线问题。【参考方案2】:在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);
【讨论】:
你的意思是在 cellForIndexPath 方法中吗? 在 cellForRowAtIndexPath 方法中 怎么样?现在两个单元格 indexPath.row 都不存在 抱歉输入错误 试过了,没用。我不认为这是一个分隔符。以上是关于iOS 8:从 UITableViewRowAction 中删除下划线的主要内容,如果未能解决你的问题,请参考以下文章
NSLayoutConstraint layout Margin 从 iOS 7 到 iOS 8 的变化
BLE 在将数据从 iOS 7.1 发送到 iOS 8 时花费了太多时间