iOS自定义视图:无法同时满足约束错误

时间:2013-06-24 08:41:30

标签: iphone ios uiview rating

我正在关注Ray Wenderlich关于实现rateView的教程:http://www.raywenderlich.com/1768/how-to-make-a-custom-uiview-a-5-star-rating-view

在我的应用程序中实现了rateView之后,我收到了这个错误:

  

无法同时满足约束条件。       可能至少下列列表中的一个约束是您不想要的约束。试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果你看到你不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints)

     

(       “NSAutoresizingMaskLayoutConstraint:0x870c2b0 h = - & v = - & V:[UIView:0x93a1d60(416)]”,       “NSLayoutConstraint:0x87363c0 V:| - (203) - [RateView:0x8729040](姓名:'|':UIView:0x93a1d60)”,       “NSLayoutConstraint:0x8736440 V:[RateView:0x8729040] - (228) - |(Names:'|':UIView:0x93a1d60)”   )

     

将尝试通过违反约束来恢复   NSLayoutConstraint:0x8736440 V:[RateView:0x8729040] - (228) - | (名称:'|':UIView:0x93a1d60)

     

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

我下载了Ray提供的示例应用,它对我来说非常合适,没有错误。搜索完代码后,我没有看到任何差异,我在Interface Builder中的连接与他的相同。一个显着的区别在于我们各自的费率观点的规模检查员。他看起来像这样:

enter image description here

虽然我看起来像这样:

enter image description here

考虑到错误与约束有关,这可能就是问题所在。但是,我不知道如何将我的rateview更改为autoresizing,如Ray's。帮助

4 个答案:

答案 0 :(得分:4)

新Xcode 5具有新功能,可以从不同的constaint值中了解我们。我非常欣赏这个功能,它减少了故事板和模拟器和/或设备之间的错误和差异。

尝试遵循黄色三角形。当故事板查看器打开时,它位于左侧边栏中。它带来了三种解决方案,如何解决问题,并且可以很好地自动完成。

所以只需更新Frame,Constraints或重置为建议的约束。

<强> SOLUTION:

(如果您没有看到左侧边栏,则在新的xcode 5中可能会隐藏,只需点击播放图标):

shows up the left storyboard side bar

首先按照黄色箭头

Follow the yellow arrow first

然后按照黄色方法点击它,你会得到一个对话框:

Then follow the yellow triange and after clicking on it you'll get the dialog

答案 1 :(得分:4)

取消选中“使用Autolayout”并尝试....

enter image description here

答案 2 :(得分:0)

这是AutoLayout constraints的错误您必须检查视图的XIB中使用的约束。修复这些约束,然后您的项目将正常工作。希望这会帮助你。

答案 3 :(得分:0)

将底部空间的优先级更改为:superview或Top space to:superview from default required(1000)to High(750)。