2017-08-17 90 views
-4

如何在不干扰其他设置(按钮颜色,可视性和活动性)的情况下向按钮添加约束。 我已经为两个按钮添加了约束(请参阅图片)。白色按钮变成背景的颜色,不可点击(不能按模拟器),紫色按钮完全消失。将约束添加到按钮

enter image description here

+0

他们以这种方式定义了约束条件,决不应干扰颜色和主动性。所以你的问题可能在其他地方1.无论如何看看** View Controller Scene **?点击**约束**。展开它。拿另一张截图。 2.分享您在调试器中获得的完整错误消息。 3.你可能想看到[这里](https://www.youtube.com/watch?v=qb05nLPYKz8) – Honey

+0

任何在U管自动布局的视频将对你有用。 现在添加,水平中心和垂直中心任何按钮都可以帮助你,改变约束的乘数值来放置它 –

回答

0
  1. 没有背景的按钮是好的,你不会在模拟器中看到水龙头。连接一个IBOutlet并为它设置一些动作,你会看到它的工作原理。
  2. 紫色按钮已经磨损了限制。根据iPhone7屏幕设置固定的顶部和底部约束。但是你正在运行SE模拟器。 SE屏幕小于7,自动布局引擎无法正确应用您的约束,因此它会制约一些约束(您可以在日志中看到相关消息)。 E.G.你已经设置了紫色按钮必须有400点到屏幕顶部(或上面的一个控件),并且237点到屏幕底部。故事板上的按钮高度= 30.然后我们有400 + 237 + 30 = 667。它的iPhone 6,7屏幕高度,所以一切都很好。当你在SE上运行你的应用时,发生了什么: SE的屏幕高度为568.所以自动布局引擎尝试将400设置为最高 - ok。 237底部?错误。底部只剩下168分。所以我会制止底部约束,在日志中告诉你它已经发生,并且设置最大可能值,使得168. 结果我们有568 - 400 - 168 = 0 - 这是按钮的高度。 尝试了解自动布局引擎如何构建UI并正确更新您的约束。

如果你希望你的紫色按钮被放置在底部和第一按钮的中间,我建议:1。 添加一个空的观点,并伸展到适合第一按钮和底部之间的所有空的空间。通过将背景颜色设置为透明颜色来使其透明。 2.添加约束0-0-0-0所有边0到最近的视图。 3.把你的紫色按钮放在这个视图中,并放在中间(当它在中间时你会看到蓝色的交叉线) 4.向紫色按钮添加2个约束:在容器中水平居中并垂直居中容器。

这将解决您的问题。

0

应用约束得当,它看起来像您已经应用在你的紫色按钮,两个顶级的约束,一个从上海华盈的顶部,另一个来自您的白色按钮。

0

约束只影响位置和大小。如果按钮正在消失,这是因为您的约束条件有冲突(可通过文档树中的场景或控制器旁边的红色箭头标识)或不正确的约束条件(如约束垂直至底部:-50)

编辑:看起来你在iPhone 7环境下工作时以iPhone SE模式运行你的模拟器。除非你的约束是完美的,否则工作环境中显示的内容将与你的模拟器中显示的内容不同。