iOS NSLayoutConstraint 使用 constraintWithItem 固定宽度

标签 ios objective-c autolayout

我想设置一个约束,以编程方式为 UIButton 提供固定(恒定)宽度。我知道我可以使用 constraintsWithVisualFormat 来做到这一点,但我一直在使用 constraintWithItem 来处理代码中的所有约束。为了好奇/一致性,我想知道是否有任何方法可以使用 constraintWithItem 来做到这一点。

最佳答案

找到我的解决方案。只需将另一个对象设置为nil,将另一个属性设置为NSLayoutAttributeNotAnAttribute(这是我没有想到的)并使用固定宽度的常量参数:

[self addConstraint:[NSLayoutConstraint constraintWithItem:myButton
      attribute:NSLayoutAttributeWidth 
      relatedBy:NSLayoutRelationEqual 
      toItem:nil 
      attribute:NSLayoutAttributeNotAnAttribute 
      multiplier:1.0 
      constant:200]];

编辑:由于这个答案似乎仍然得到了相当多的意见,我想我会添加 Swift 语法:

self.addConstraint(NSLayoutConstraint(
        item: myButton,
        attribute: .width,
        relatedBy: .equal,
        toItem: nil,
        attribute: .notAnAttribute,
        multiplier: 1.0,
        constant: 200))

关于iOS NSLayoutConstraint 使用 constraintWithItem 固定宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681963/

相关文章:

ios - 通过 WhatsApp 分享图片,只需显示 WhatsApp 图标

ios - 覆盖应用程序方向设置

ios - Storyboard中的层次结构与应用程序运行时调试时的层次结构不同

iOS 内存效率和性能 : Pass Data via Segue or Create New Instance?

iphone - 为什么SBJson JSON解析只得到最后一个感兴趣的key?

所选 TabItem 的 iOS UITabViewItem 分隔线和背景颜色

IOS 在另一个应用程序中从我的应用程序打开 PDF EXC_BAD_ACCESS

ios - UIScrollView 中的多个 UITableView(如 Etsy 应用程序)

ios - auto layout 3.5 - 4寸屏幕以及ipad mini正常吗?

iOS:根据 View 位置动态更改 UILabel 对齐方式