如何更改最后一个 UITableViewCell 的特定约束?
Posted
技术标签:
【中文标题】如何更改最后一个 UITableViewCell 的特定约束?【英文标题】:How can I change a specific constraints on the last UITableViewCell? 【发布时间】:2015-05-20 11:15:13 【问题描述】:我需要在运行时更改最后一个 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
【讨论】:
以上是关于如何更改最后一个 UITableViewCell 的特定约束?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 IBAction 更改 UITableViewCell 内容视图?