【问题标题】:Autolayout Shrink and Expand with phone size自动布局缩小和扩大手机大小
【发布时间】:2014-12-17 18:46:30
【问题描述】:

我很难通过自动布局来调整我的应用大小。我几乎看过所有教程,并且使用约束、类将其搞砸了好几天,但它并不完美。

我附上了我正在尝试做的模型。我已经创建了约束,但是当它缩小时,一排比其他排小,所以它适合。如果我添加了相等的高度约束,那么所有内容都会被推到标题中。我没有使用表格视图,仅使用文本和线条作为图像。

我基本上只是试图保持相同的比例,但使用常规视图将行缩小以适应页眉和页脚。

感谢您的帮助。

【问题讨论】:

  • 如果不知道哪些视图和哪些关系实际上构成了您的布局,以及您在约束、优先级等方面尝试了什么,很难给出建议。
  • 感谢您的回复。我使用的是常规视图,而不是表格视图,即使模型看起来像一个。我只是使用常规标签和图像作为线条。告诉我该做什么可能太费时了,但只是一个开始的地方。我已经从页眉和页脚垂直对齐。行间垂直对齐。

标签: ios iphone swift autolayout xcode6.1


【解决方案1】:

如果我理解正确的话,我刚刚整理了一个布局,可以满足您的需求。这是它在 iPhone 4S、5S 和 6 中的外观:

我使用的视图是:

  • 标题的 UIView
  • UIView,其中每个“一”、“二”、“三”、“四”都有一个 UILabel。
  • UIView 的背景颜色为深灰色,“一”、“二”、“三”和“四”的底部边框的高度限制为 1。

有两组重要的约束来获得“弹性”:

  • “一”与每个标题、“二”、“三”和“四”之间的等高约束。我在“一”和“标题”之间的等高约束上使用了 0.5 的乘数,因为在我看来,您的标题大约是每一行的两倍。
  • 垂直空间限制为 0 (a) 顶部布局指南和页眉之间,以及 (b) “四”的底部“边框”视图和底部布局指南之间。

基本上,只要将顶视图固定在屏幕顶部,将底视图固定在屏幕底部,并提供足够的等宽约束以使所有视图在高度方面相互关联,自动布局只会为您计算出实际高度。我设置任何特定高度限制的唯一视图(即使用实际数字)是充当“底部边框”线的 1 像素高视图。

还有很多其他的限制条件,但它们基本上很明显——容器的前导和尾随空间为零,每个项目之间的垂直空间限制为零,下一个垂直向下。视图内的数字标签固定在左侧边缘并在其容器中垂直居中。

这有点麻烦,Xcode 崩溃了几次,但遗憾的是,这对你来说是自动布局。尽早保存,经常保存。

【讨论】:

  • 感谢您的回复并抽出宝贵时间!实际上,我一次从未使用过多个 UIView,我没想过要这样做。所有标签是否都在一个单独的 ui 视图中,所以总共 4 个 UI 视图仅用于标签 1-4?在约束条件下,您说 1-2、1-2 的高度相等。 1-3、1-4?不只是在每个之间?是的,自动布局在我身上崩溃了很多,有时我的图像尺寸重置为 0。真的很烦人,我会玩它,看看我是否能弄清楚你在做什么。谢谢!
  • 它的工作方式完全符合我的要求,非常感谢。我不太确定在哪里设置 0.5 乘数?在我创建了所有不同的 UIViews 之后,xcode 几乎可以自动生成除我手动设置和更新的一些约束之外的所有约束。
  • 没问题。我的 .5 乘数位于标题和 One 视图之间的 Equal Height 约束的属性上,因此 One 视图最终是标题高度的一半。
猜你喜欢
  • 1970-01-01
  • 2015-08-10
  • 2016-08-18
  • 1970-01-01
  • 2016-02-24
  • 2019-07-08
  • 1970-01-01
  • 2015-04-30
  • 2015-09-10
相关资源
最近更新 更多