Swift - 大屏幕上的自动布局调整大小按钮

Posted

技术标签:

【中文标题】Swift - 大屏幕上的自动布局调整大小按钮【英文标题】:Swift - Autolayout resize button on bigger screen 【发布时间】:2015-04-20 12:54:16 【问题描述】:

我正在尝试使用 swift 开发一个计算器(见图)

由于我没有输入任何限制,当我在大于 4 英寸的 iphone 屏幕上运行应用程序时,按钮保持在同一位置(见图)

我可以输入哪些约束来确保按钮的大小可以随着屏幕大小的增加而增长?请注意,红色视图是滚动视图内的内容视图,因此具有以下层次结构:

视图控制器 滚动视图 内容红色视图 按钮

其中滚动视图具有以下约束:(其父视图的前导、尾随、底部和顶部)而内容视图具有:(前导、尾随、底部、顶部、与滚动视图等宽和等高)

编辑: 回应 Rizwan Shaikh

它有效,唯一的问题是,当我使用 iphone 6/6 plus(见图)运行应用程序时,容器视图(红色)变得低于滚动视图(绿色),而不是在 iPad 上,按钮超过容器视图的大小迫使滚动视图垂直滚动,为什么会这样?

编辑 2: 回应 Rizwan Shaikh

谢谢!

【问题讨论】:

我能问一下你为什么要滚动视图吗? 分页,当用户水平滚动时,呈现科学计算器 【参考方案1】:

你应该使用像

这样的约束
firstButton LeadingSpace = 20 from mainView    
secondButton LeadingSpace = 20 from firstButton   
thirdButton LeadingSpace = 20 from secondButton  
thirdButton TrailingSpace = 20 from mainView       

同时选择给定行中的所有按钮转到编辑器 -> 引脚 -> 宽度相等 它将使您的所有按钮具有相同的宽度 同样像这样指定顶部和底部空间

firstButton TopSpace = 20 from mainView
fourthButton topSpace = 20 from firstButton // consider 3 button in one row
fourthButton BottomSpace = 20 from MainView

【讨论】:

设置前导和尾随空格以及宽度/高度,当我运行应用程序时,按钮会从屏幕上消失 抱歉迟到了,我知道它会正常工作的。编辑答案是赖特,它将对每个按钮的 topSpace 进行约束,因为在您的图表中,firstButton 是 AC,它给出了类似于 firstButton TopSpace = 20 来自 mainView 的约束,而第四个按钮就像 7 个数字按钮,所以它的 topSpace = 20 来自 AC 按钮跨度> 迟到没问题,所有按钮的约束都可以正常工作,但在 iPhone 6/6 plus 上强制红色视图的高度变得小于绿色视图的高度,否则在iPad 按钮超出了红色视图的高度,可以垂直滚动,我不希望这种情况发生 让 contentView 约束像 top.bottom,leading,trailingSpace = 0 from scrollView 它只会在 6/6 加号时显示此行为?使用 4s,5c 测试

以上是关于Swift - 大屏幕上的自动布局调整大小按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?

如何根据屏幕大小调整按钮的图像和文本大小(自动布局)

如何使用自动布局来调整图像按钮的大小?

有啥办法可以让按钮上的图像自动调整大小以适应屏幕?

自动布局调整多个标签的大小

通过文本字段上的自动布局调整字体大小并改变高度