如何更改最后一个UITableViewCell的特定约束?

时间:2015-05-20 11:15:14

标签: ios uitableview swift autolayout constraints

我需要在运行时更改最后一个UITAbleViewCell Bottom Constraints常量。

我在IB上添加了一个标识符,并且我已将以下扩展名添加到我的UIView中。

func getConstraintById(id:String) -> NSLayoutConstraint?{
        let constraints = self.constraints()
        for c in constraints{
            if((c as! NSLayoutConstraint).identifier == id){
              return c as? NSLayoutConstraint
            }
        }
        return nil
    }

一切正常,但迭代每个单元格的所有约束似乎是多余的。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我已经通过添加自定义UITableView类以及所需约束的出口来解决这个问题,然后我在cellForRowAtIndexPath方法上采用了直接方法。

类:

import UIKit

class CustomTableViewCell: UITableViewCell {

    @IBOutlet weak var bottomPadding: NSLayoutConstraint!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

方法:

if(index + 1 == ITEMS?.count){
    cell.bottomPadding.constant = 5
}else{
     cell.bottomPadding.constant = 0
}