我需要在运行时更改最后一个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
}
一切正常,但迭代每个单元格的所有约束似乎是多余的。
有更好的方法吗?
答案 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
}