В Swift с использованием iOS 8.4 :
/*
Tells the delegate that the table view is about to draw a cell for a particular row. (optional)
*/
override func tableView(tableView: UITableView,
willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath)
{
if indexPath.row == 3 {
// Hiding separator line for only one specific UITableViewCell
cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0)
}
}
Примечание. Этот фрагмент выше будет работать с UITableView с использованием динамических ячеек.Единственная проблема, с которой вы можете столкнуться, это когда вы используете статические ячейки с категориями, тип разделителя, отличный от none, и сгруппированный стиль для табличного представления.Фактически, в данном конкретном случае он не будет скрывать последнюю ячейку каждой категории.Чтобы преодолеть это, я нашел решение установить нулевой разделитель ячеек (через IB), а затем вручную создать (через код) свой вид строки для каждой ячейки.Для примера, пожалуйста, проверьте фрагмент ниже:
/*
Tells the delegate that the table view is about to draw a cell for a particular row. (optional)
*/
override func tableView(tableView: UITableView,
willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath)
{
// Row 2 at Section 2
if indexPath.row == 1 && indexPath.section == 1 {
// Hiding separator line for one specific UITableViewCell
cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0)
// Here we add a line at the bottom of the cell (e.g. here at the second row of the second section).
let additionalSeparatorThickness = CGFloat(1)
let additionalSeparator = UIView(frame: CGRectMake(0,
cell.frame.size.height - additionalSeparatorThickness,
cell.frame.size.width,
additionalSeparatorThickness))
additionalSeparator.backgroundColor = UIColor.redColor()
cell.addSubview(additionalSeparator)
}
}