【问题标题】:Higher Segmented Control for ios 7.1ios 7.1 的更高分段控制
【发布时间】:2015-04-10 23:24:41
【问题描述】:

我正在使用此代码来更改分段控件的高度。它适用于 8.0 和最新版本,但不适用于 7.1 等更低版本。你知道有什么其他方法可以改变它吗?谢谢!

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:segmentedControlShortcuts
                                                              attribute:NSLayoutAttributeHeight
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:nil
                                                              attribute:NSLayoutAttributeNotAnAttribute
                                                             multiplier:1
                                                               constant:50];

这是我在 7.1 中收到的错误:

"2015-04-09 12:10:06.626 KMetrix[546:607] 无法同时满足约束。 以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档) ( "", “” )

将尝试通过打破约束来恢复

中断 objc_exception_throw 以在调试器中捕获它。 中列出的 UIView 上的 UIConstraintBasedLayoutDebugging 类别中的方法也可能会有所帮助。”

【问题讨论】:

    标签: ios objective-c xcode uisegmentedcontrol


    【解决方案1】:

    试试这个。在 iOS7 和 iOS8 中测试 -

    NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.mySegmentCtrl
                                                                  attribute:NSLayoutAttributeHeight
                                                                  relatedBy:NSLayoutRelationEqual
                                                                     toItem:nil
                                                                  attribute:NSLayoutAttributeNotAnAttribute
                                                                 multiplier:1
                                                                   constant:50];
    [self.mySegmentCtrl addConstraint:constraint];
    

    检查它在 iOS7 和 iOS8 中都可以使用的屏幕截图 -

    【讨论】:

    • 它在 Interface Builder 和 Preview 上工作,但在我运行应用程序后它不工作
    • 它适用于 8.0 版,但不适用于 7.1。每次我与之交互时,分段控件的大小都会发生变化。
    • 我更新了问题,看看代码下显示的错误
    • 看到此错误是由于您可能在情节提要中添加了限制。通过查看错误,我无法确定哪个约束失败,但我猜你已经为段控制值添加了高度约束,其值为 29(常量)并且关系相等。但理想情况下,它必须大于等于。所以检查这个并修复。不提供高度限制就好了。
    • 哇,找不到……如果我删除分段控件并将代码添加到新控件中,我会修复它吗?
    猜你喜欢
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多