我想更改viewTable
中特定单元格中嵌套视图的Y位置。
让我们说
let condition = myarray[indexPath.row]
if condition != nil {
cell.myView.frame.origin.y += 15
}
问题在于,因为每次滚动时它都在dequeueReusableCell
之下,它将执行代码并将另一个15添加到前一个y位置。
每个单元格执行此操作一次的最佳和正确方法是什么?
答案 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
}