2016-02-03 22 views
2

在我的應用程序中,我使用了一個UITableView,它由多個標題和每個標題的一行或兩行組成。每個單元具有兩個UITableViewRowActions。我的問題是,每當這些行動作被動畫出來時,單元格和下面的標題之間就會出現一個奇怪的分隔符。劃過UITableViewRowActions時分隔線意外出現

我試着關閉默認分隔符,並使用自定義分隔符,但由於某種原因,我實際上需要使用默認分隔符。

在下一步中,我試圖禁用分離器只對那些對下一個報頭,像這樣的頂部細胞,但沒有奏效:

if #available(iOS 9.0, *) { 

     tableView.cellLayoutMarginsFollowReadableWidth = false 

    } 

cell.layoutMargins = UIEdgeInsetsZero 
cell.preservesSuperviewLayoutMargins = false 
cell.separatorInset.left = self.view.frame.size.width 

幫助你獲得的印象這個問題,我創建了三個截圖,展示了奇怪的行爲:

前:

enter image description here

當顯示的行操作:

enter image description here

使用tableView.setEditing(false, animated: true)駁回行操作後:

enter image description here

你有什麼想法,我怎麼能去掉這個奇怪的分隔線?

回答

3

我終於找到了一個相對乾淨的解決方案來解決這個問題 - 我只是添加一個「線修復」視圖到每個標題視圖,這將覆蓋陌生的分隔符。由於它似乎是一個蘋果的bug,這可能是最好的解決方法。

下面的代碼:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    let view = UITableViewHeaderFooterView() 

    let lineFix = UIView(frame: CGRect(x: 0, y: -0.5, width: tableView.frame.size.height, height: 0.5)) 
    lineFix.backgroundColor = UIColor.groupTableViewBackgroundColor() 
    view.addSubview(lineFix) 

    return view 

}