android - 使用设备和 AutoLayout iOS swift 进行 DP 和缩放

标签 android swift autolayout scaling

我正在从 Android 迁移到 iOS (Swift)。在 Android 中,UI 元素根据设备大小按比例放大或缩小(高度和宽度使用“dp”、layout_weight 等)。

但是我发现这很难通过自动布局的约束来实现,我希望我的 UI 中的元素能够根据设备大小进行缩放。

例如,在下面的共享图像中,除了图像压缩以适应屏幕宽度外,每个 UI 元素都具有相同的大小,只是看起来 UI 元素在所有屏幕上都以相同的规范复制了 enter image description here

这可能会帮助其他人从 Android 迁移到 Swift (我只固定了下面2个丑陋的ImageView的宽度)

P.S:这就是我要复制的东西,这个 View 适合所有屏幕。抱歉模糊不清,我不负责这个项目

]

最佳答案

AutoLayout 有一个zen。让我看看能不能给你一些指导。

您需要在可用的最小模拟器 (iPhone 4S) 上测试每个 UI。这会让您知道是否需要调整元素的最小尺寸。

现在对您发布的用户界面进行自上而下的审查:

  1. “个人资料”看起来不错
  2. 要使左上角和右上角的框随屏幕尺寸调整大小,您需要 想分别对左右两侧的 super View 进行约束。然后,您需要在两者之间设置水平约束(以保持它们之间的空间。然后您需要将它们设置为相等的宽度。您还可以为每个设置纵横比约束。
  3. 您的表单看起来不错。如果您想要的外观与您发布的图片不符,我可以在这里提供更多指导。
  4. 对于表格下方的 View ,您可能需要遵循上面的 #2。

至于高度问题,设置一个从底部 View 到父 View 底部的约束。可能会很拥挤,界面构建器可能会大喊大叫。很有可能,您需要将水平间距约束设置为 =>=

关于android - 使用设备和 AutoLayout iOS swift 进行 DP 和缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35317665/

相关文章:

ios - 如何将实时表格 View 选择的单元格计数器作为 UIBarButtonItem

iOS - 使用自动布局设置 UILabel 的最大宽度

ios - 什么是 _UITemporaryLayoutWidth 以及为什么它会打破我的限制?

android - Meteor Cordova 输入字段软键盘上方的白色带

date - 如何在 Swift 中解析/创建格式为小数秒 UTC 时区(ISO 8601、RFC 3339)的日期时间戳?

ios - 在 iOS 上发布本地通知时可以执行代码吗?

macos - NSTableView reloadData(forRowIndexes :columnIndexes:) breaks autolayout

android - 如何在 Windows 7 的模拟器上安装 facebook api?

android 将适配器设置为线性布局

java - 如何为另一个 Activity 保存一个 int ?