【问题标题】:Auto-Layout issue with bottom UIButtons in iosios中底部UIButtons的自动布局问题
【发布时间】:2016-06-01 23:20:19
【问题描述】:

我正在尝试使用 UIButtons(连续 5 个按钮)在每个按钮大小上精确地创建自定义标签栏:w:75 h:55,非常适合 iPhone-6 和 iPhone-6Plus

当我尝试在iPhone 5 屏幕上添加约束(宽度等于和边距点)时,按钮失去了比例,看起来有点碎了。

iPhone5 输出:

在 iPhone-6Plus 上完美匹配的原始布局:

我的问题是,我如何在每个设备屏幕上成功地进行这种布局而不造成混乱?

问候,

【问题讨论】:

  • 您尝试过size classes吗?使用大小类可以解决这个问题。
  • 我认为你不能用 size class @Aneesh 解决这个问题

标签: ios xcode autolayout constraints


【解决方案1】:

您需要在每个按钮上添加Aspect Ratio Constraint。并确保将乘数设置为 1(以便宽度等于高度)。

【讨论】:

  • 我的约束现在看起来像这样:prntscr.com/bb1s8e。输出:prntscr.com/bb1sjq。还是有问题..
  • 我看到你有宽度相等的约束。你需要删除它。您将它们设置为 75 像素,这可能不适合所有屏幕尺寸。
  • 在添加纵横比之前,这些约束是否正确? prntscr.com/bb1za7 还是我也只需要添加高度约束?
  • 我不知道你的超级视图是什么,所以你可能需要在这里提供更多的上下文。
  • 您不需要添加高度约束,因为您不想指定高度。您希望根据按钮的宽度计算高度。所以纵横比约束等于 1 就足够了。但是,您确实需要为按钮设置适当的宽度限制。您想要的是使所有按钮具有相同的宽度和相同的宽度约束。您只需要其中 4 个有约束条件:按钮 1 宽度 == 按钮 2 宽度、按钮 2 宽度 == 按钮 3 宽度等。
【解决方案2】:

将 UIImageView 的 contentMode 属性设置为 .ScaleAspectFit

imageView.contentMode = .ScaleAspectFit

【讨论】:

  • 哪个有 imageView 属性(public var imageView: UIImageView? { get })。所以 button.imageView?.contentMode = .ScaleAspectFit
  • 我现在要试试。我会告诉你它是否会解决布局问题
猜你喜欢
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
相关资源
最近更新 更多