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

时间:2016-01-13 04:28:38

标签: ios objective-c autolayout storyboard

假设我有多个垂直和水平对齐的按钮,如屏幕截图所示。在相同距离处会有三排。在第一行和第三行中,将有两个具有相同高度和宽度的按钮,在第二行中将存在水平对齐的按钮。我在故事板中设置了按钮图像和文本。控制对齐设置为水平| vertical.Constraints for Button(查看交易)是: top space, bottom space equals to:8(New Launches Button) leading and trailing space equals to:8(superview) and 8(Place Request Button) respectively, and equal width and height for all buttons。我可以从结果中想到的是,按钮的图像和文本之间的空间不是根据屏幕调整的。只调整按钮的高度和宽度。我希望按钮的字体应该缩小屏幕大小,以便按钮的图像ll正确呈现。 iOS 8,9是我项目的目标版本。我已通过最小化字体大小进行检查,但图像大小仍然没有变化。

enter image description here

2 个答案:

答案 0 :(得分:0)

我使用普通的UIViews创建组来做这种事情。将大小调整问题分解为块更容易。 举个例子,我会使用4个UIViews跨越屏幕的宽度并与屏幕成比例的高度(包含它们的控制器视图)。

在每个视图中,您可以放置​​更多UIView来包含您的图像/文本框对。将它们与父视图的顶部和底部对齐,使它们分别以1:1的宽高比和左右对齐。 (如果你不希望while矩形是正方形,你也可以使用比例宽度,但是你需要使用方形UIViews来管理你的图像。

在每个方框(方形UIViews)中,将标签放在底部,左,右和底部对齐到包含的UIView(未指定高度以允许自动大小工作)。图像应为1:1的宽高比,在容器中水平居中,在顶部/底部居中,包含视图和文本。

您的要求中可能存在更多的相对大小问题,但我认为您会得到一般的想法:UIViews中的UIViews内的UIViews使得相对大小调整(比例/宽高比/中心)比使用固定边缘对齐距离更容易。

答案 1 :(得分:0)

最后,我让它以某种方式工作,虽然它不是真正的解决方案,但它可以是一种解决方法。正如我在问题中所说,问题是按钮的图像和标题之间的空间。所以我所做的就是选择按钮,在属性检查器中设置left=0 and right=0 for the edge-title并控制对齐vertical|horizontal,之后我的视图看起来很好,没有任何滚动视图。

enter image description here