UITableView行分隔符行与扩展单元格无关

时间:2016-05-05 13:50:35

标签: ios swift uitableview

我正在使用以下代码扩展我的单元格:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    let originalHeight: CGFloat = 48.0
    let expandedHeight: CGFloat = 135
    let indexPath = indexPath
    if self.expandButtonTappedIndexPath != nil {
        if indexPath == self.expandButtonTappedIndexPath! {

            return expandedHeight
        } else {
            return originalHeight
        }
    } else {
        return originalHeight
    }
}

@IBAction func expandButtonTapped(sender: AnyObject) {

    switch self.expandButtonTappedIndexPath {
    case nil:
        self.expandButtonTappedIndexPath = indexPath
    default:
        if self.expandButtonTappedIndexPath! == indexPath {
            self.expandButtonTappedIndexPath = nil
        } else {
            self.expandButtonTappedIndexPath = indexPath
            //self.tableView.scrollToRowAtIndexPath(indexPath!, atScrollPosition: .Top, animated: true)
        }
    }
}

以下是问题的图片:

How do I copy to the clipboard in JavaScript?

我之前的所有时间都在扩展我的单元格,我从来没有遇到过那个分隔线出现在那里而不是在扩展单元格下面的问题。但无论出于何种原因,它出现了,我不知道如何把它放在扩展的细胞下。

以下是我在MainStoryBoard中设置单元格的方法:

enter image description here

现在,我尝试更改原始高度,这会导致该线移动。但我希望原始高度为48.0,我希望分隔线移动到扩展单元格的底部而不是中间的笨拙。

有关如何解决此问题的任何建议?非常感谢你提前帮助:)

1 个答案:

答案 0 :(得分:0)

我道歉。我应该做更多的研究。答案在这里找到: UITableView displays separator at wrong position in iOS8 for some cells

我只需要在我的单元格中的layoutSubviews()函数中调用超类。我这样道歉:

override func layoutSubviews() {
    super.layoutSubviews()
}