如何在tableView中的特定单元格中执行一次代码(在dequeueReusableCell下)

时间:2017-07-30 13:24:19

标签: swift

我想更改viewTable中特定单元格中嵌套视图的Y位置。

让我们说

let condition = myarray[indexPath.row]
if condition != nil  {                
    cell.myView.frame.origin.y += 15
}

问题在于,因为每次滚动时它都在dequeueReusableCell之下,它将执行代码并将另一个15添加到前一个y位置。

每个单元格执行此操作一次的最佳和正确方法是什么?

1 个答案:

答案 0 :(得分:1)

  • 声明属性defaultViewY

    var defaultViewY : CGFloat = 0.0
    
  • viewDidLoad中获取视图的默认y位置

    func viewDidLoad() {
        super.viewDidLoad()
        defaultViewY = // add code to get the default y-position or use a literal constant
    }
    
  • cellForRow不要使用+=运算符并添加else子句以重置 y位置是假的

    let condition = myarray[indexPath.row]
    if condition != nil  {
        cell.myView.frame.origin.y = defaultViewY + 15.0
    } else {
        cell.myView.frame.origin.y = defaultViewY
    }