我想设置一个约束,以编程方式给UIButton一个固定(恒定)的宽度.我知道我可以用constraintsWithVisualFormat实现这一点,但我一直在用constraintWithItem来实现代码中的所有约束.出于好奇/一致性的考虑,我想知道是否有任何方法可以用constraintWithItem实现这一点.

推荐答案

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

[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))

Objective-c相关问答推荐

导航回上一个视图控制器

在哪里可以找到 iPad 示例代码

如何从 C 方法调用 Objective-C 方法?

在从 UIViewController 调用的非保留完成中引用 self 时,weakSelf/strongSelf 舞蹈真的有必要吗?

Asihttprequest 61 错误

如何将 NSMutableArray 中的字符串按字母顺序排序?

判断对象是 NSArray 还是 NSDictionary

CoreData 关系故障?

iOS - UITableViewCell 中 UIButton 的延迟Touch Down事件

Crashlytics iOS - 记录捕获的异常

如何在 Objective-C 中创建一个空白的透明 png?

iOS是静态框架还是动态框架?

NSHTTPCookieStorage 状态未在应用退出时保存.那里有任何明确的知识/文档吗?

如何配置我的应用程序 - 菜单项被禁用?

iOS:开源 VoIP/SIP Objective-C 代码

无法加载从设备上运行的包中的 nib 引用的图像

将 NSDate 舍入到最接近的 5 分钟

重复符号问题

CMTime 秒输出

有没有办法在用户已经在 iOS 上拒绝相机访问权限后向他们询问?