代码中的 UIImageView 和自动布局

Posted

技术标签:

【中文标题】代码中的 UIImageView 和自动布局【英文标题】:UIImageView and Auto Layout in Code 【发布时间】:2013-06-13 03:25:34 【问题描述】:

我正在尝试使用编程视觉约束来显示一个标签和一个按钮。但是,用作按钮背景的UIImageView 使按钮的固有大小太大。

我试图添加一个约束,强制按钮的高度与标签的高度相匹配。但我只是得到了一个超高的标签,而不是一个较小的按钮。

    如何设置约束,以使按钮高度与标签高度相同(反之亦然) 按钮应保持图像的原始纵横比 - 其宽度也应与其自身高度匹配(也许这是免费提供的?)

【问题讨论】:

【参考方案1】:

以下适用于此:

    为视觉布局中的按钮设置宽度:@"|-[titleLabel][refreshButton(==26)]"

    添加一个约束,使按钮的高度等于它自己的(现在明确的)宽度:

        NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:refreshButton
                                                                  attribute:NSLayoutAttributeHeight
                                                                  relatedBy:NSLayoutRelationEqual
                                                                     toItem:refreshButton
                                                                  attribute:NSLayoutAttributeWidth
                                                                 multiplier:1.0f
                                                                   constant:0.0f];
    

我仍然更喜欢使用标签高度而不是固定值的解决方案。

【讨论】:

以上是关于代码中的 UIImageView 和自动布局的主要内容,如果未能解决你的问题,请参考以下文章

Stackview中的iOS 10方形UIIMageView在隐藏时会破坏自动布局

为啥更改 UIImageView 内容模式会影响其在 Xcode6 中的自动布局?

具有自动布局和最大尺寸保持纵横比的 UIImageView

iOS7 上 UICollectionViewCell 中的 UIImageView 自动布局问题,但在 iOS8 上没问题

我们如何使用自动布局来舍入 UIImageView

使用自动布局时 UIImageView 没有动画