2017-07-30 21 views
0

我想在viewTable的特定单元格中更改嵌套视图的Y位置。如何在tableView中的特定单元中执行一次代码(在dequeueReusableCell下)

比方说

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

的问题是,由于这个你每次滚动它将执行的代码,并添加另一个15到以前的y位置的时间是dequeueReusableCell下。

对每个单元执行一次这种最好和正确的方法是什么?

+0

使用的UITableViewCell的子类,并覆盖初始化。 – deadbeef

+0

@deadbeef,谢谢你请举个例子,以前没做过。 – adimona

回答

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-pos银行足球比赛,如果条件为假

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

谢谢,是“==”还是“=”导致它给我一个警告,说明“==”的结果未被使用。你能解释获得viewWidth的原因吗?试图找出背后的窍门。 – adimona

+0

我不好,我更新了答案。我的意思是默认的y位置而不是宽度。 – vadian

+0

谢谢,而不是viewDidLoad下的代码我在tableView func中添加了下面的代码'if defultValueofY == 0.0 {defultValueofY = cell.myview.frame.origin.y}'事情看起来不错,现在干杯。 – adimona

相关问题