如何更改最后一个 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 的特定约束?的主要内容,如果未能解决你的问题,请参考以下文章

ios 7 uitableviewcell 绘图更改

选择时如何更改 UITableViewCell 的颜色?

如何通过 IBAction 更改 UITableViewCell 内容视图?

如何在点击时更改 UITableViewCell 的部分位置

如何更改 UITableViewCell 宽度?

如何使 UITableViewCell 上的 UIProgressView 立即更改?