Ios 使用autolayout和constraint设置按钮
屏幕上有4个按钮。 我想将屏幕上的所有4个按钮放置在与所有屏幕(即4s、5s、6和6plus)中的图像所示距离相同的位置 我添加的约束Ios 使用autolayout和constraint设置按钮,ios,constraints,ios-autolayout,Ios,Constraints,Ios Autolayout,屏幕上有4个按钮。 我想将屏幕上的所有4个按钮放置在与所有屏幕(即4s、5s、6和6plus)中的图像所示距离相同的位置 我添加的约束 Button 1 : Top , leading and trailing Button 4: Bottom , leading and trailing Button 2 : Leading trailing top to button 1 Button 3: Leading trailing top to button
Button 1 :
Top , leading and trailing
Button 4:
Bottom , leading and trailing
Button 2 :
Leading
trailing
top to button 1
Button 3:
Leading
trailing
top to button 2
bottom to button 4
但我无法实现按钮2和按钮3具有相同的距离。
我只想通过使用自动布局和约束来实现这一点
请给我一些建议
像这样试试
你的约束应该是
按钮1-顶部、前导和尾随或容器中的水平中心
按钮2-顶部、前导和尾随或容器中的水平中心
按钮4-容器中的底部、前导和尾随或水平中心
按钮3-容器中的底部、前导和尾随或水平中心
现在,对于按钮2,取顶部约束的出口(ctrl+从约束拖动到类),从按钮3取底部约束的出口
例如,您的插座分别是button2Outlet和button3Outlet
所以,从viewdidload来看
CGFloat constantVslue = self.view.frame.size.height - (4 * buttonHeight) - 40 (top distance of button 1 + bottom distance of button 4);
//40 is distance from top and bottom of 1st and 4th button respactively in my case (20+20) and in my case my button height is 30 so total 120.
CGFloat distance = constantVslue/3;
self.button2Outlet.constant = distance;
self.button3Outlet.constant = distance;
希望这会有所帮助:)使用自动布局完成解决方案 由于在视图中使用偶数个按钮,因此需要在视图的中心(X&Y)位置添加高度为2的UILabel。 以下约束条件适用于所有屏幕,即4s、5s、6和6plus [注意:如果按钮为奇数,则使用中间按钮代替标签] 约束条件: 标签: 1.中心X 2.中心Y 3.固定高度和宽度(高度=2,宽度=无限制) 按钮1:
这完全可以通过Interface Builder实现: 如果您想支持iOS9之前的iOS版本
您是否搜索过此问题的答案?使用堆栈视图还是填充视图?最好的解决方案可能是重复@Wain是的,我做了。但解决方案是使用spaceview或编码。我想完全通过自动布局和构造来实现这一点。@Ecaptain感谢您的评论。但解决方案是使用spaceview或编码。我想完全通过自动布局和构造来实现这一点。谢谢你的回答。我想完全通过自动布局和构造来实现它。然后去做,并告诉我你是否得到了预期的输出。非常感谢你,我试过了,但它在所有分辨率下都不起作用。我想你已经犯了一些错误,否则在我的演示中运行良好。为什么要使用不需要的元素。我认为这不是一个好方法。“隐藏视图”@BhavukJain你可能不相信,但它们是用来分发的。不要试图在没有问题的时候解决问题-UIView是免费的,不会造成任何性能问题,在这种情况下它们的使用是明确的,易于支持,并且不需要任何硬编码值或数百行代码。没有任何隐藏的视图,这样做更容易,它使您的故事板看起来更干净。把一个按钮放在中间,给它的垂直常数一些值,然后把所有的按钮放在它的参考位置,所有的按钮都有相等的间距。完成!我相信如果我们想对布局有更多的控制,尤其是在动画方面,这种方法会有所帮助。我们可以只使用隐藏视图属性来设置按钮的动画。这也提供了更简单的方法来播放按钮的位置。