如何在IOS中使用实现Android view.gone 功能(swift版)cell(两种不同的布局)

参考链接stack overflow.中的答案  链接

通过下面的方法动态的去设定约束就ok了

// Removing the view both horizontally and vertically
func removeView(view: UIView) {
    let constraintH = NSLayoutConstraint(item: view as UIView,
                                            attribute: NSLayoutAttribute.Height,
                                            relatedBy: .Equal,
                                            toItem: nil,
                                            attribute: NSLayoutAttribute.NotAnAttribute,
                                            multiplier: 0,
                                            constant: 0)
    let constraintW = NSLayoutConstraint(item: view as UIView,
                                            attribute: NSLayoutAttribute.Width,
                                            relatedBy: .Equal,
                                            toItem: nil,
                                            attribute: NSLayoutAttribute.NotAnAttribute,
                                            multiplier: 0,
                                            constant: 0)
    view.addConstraint(constraintH)
    view.addConstraint(constraintW)
}
那如果在tableview或者collectionview 的cell中,有的要gone有的要visible怎么办呢
定义一个约束,通过

    第一步:定义约束 var constraintW:NSLayoutConstraint!

第二步:初始化约束

    constraintW = NSLayoutConstraint(item:icon as UIView,

                                         attribute: NSLayoutAttribute.Width,

                                         relatedBy: .Equal,

                                         toItem: nil,

                                         attribute: NSLayoutAttribute.NotAnAttribute,

                                         multiplier: 0,

                                         constant: 0)

第三步:添加约束、删除约束(动态改变cell的布局)

        icon.addConstraint(constraintW)添加(gone)

        icon.removeConstraint(constraintW)删除(visible)

这个约束来搞定


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值