使用自动布局使视图至少达到最小尺寸或不可见
Posted
技术标签:
【中文标题】使用自动布局使视图至少达到最小尺寸或不可见【英文标题】:Making a view at least a minimum size or invisible with autolayout 【发布时间】:2012-10-25 18:15:30 【问题描述】:我有一个网格单元格,主要是一张照片,底部有一个描述标签。 使用自动布局,我想定义一些规则来确保标签要么是最小尺寸(比如 30 像素高),要么是不可见的。
也就是说,如果单元格缩小到描述变得难以辨认的程度,我希望它消失。
是否有约束和优先级的组合可以实现这一目标?
【问题讨论】:
一张图片将有助于更快地理解案例并改善您的问题。可以加一个吗? 【参考方案1】:我认为您不能仅通过设置一些约束来做到这一点。但是您可以为标签添加高度约束,使其在代码中可访问,将其设置为大于或等于您的最小尺寸(或者可能低于该最小尺寸)。这将确保它可以像以前一样调整大小。
之后添加一个键值观察,因为它是常量,并在观察方法中将视图的 alpha 设置为零(如果它缩小到您想要的阈值以下,您可以通过调用 heightConstraint.firstItem
来获取视图。(您也可以将其设置为隐藏)属性为 YES,但我经历过隐藏视图在隐藏时无法正确调整大小,还没有弄清楚为什么)...
编辑:对不起,我明白了。错了,当然你必须观察标签框的实际高度而不是约束的常数,因为当标签调整大小时常数不会改变......
【讨论】:
以上是关于使用自动布局使视图至少达到最小尺寸或不可见的主要内容,如果未能解决你的问题,请参考以下文章