2015-05-20 2 views
1

Мне нужно изменить последнюю константу ограничения UITAbleViewCell Bottom Constraints во время выполнения.Как я могу изменить определенные ограничения на последний UITableViewCell?

Я добавил идентификатор на 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

Я решил это, добавив пользовательский класс 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 
} 
Смежные вопросы