首页 > 解决方案 > Xcode Interface Builder - 使复合地图多屏兼容

问题描述

得到一张由多个部分组成的地图:

在此处输入图像描述

每个部分都是UIButton一个图像。我放置了所有东西来组成地图,它首先看起来很好。我遇到的问题是View针对不同的屏幕尺寸调整大小。尝试使用 Autoresizing 和 Constraints,但无法让它看起来正确以最小化和最大化它。根据屏幕尺寸,这些部件应始终在一起并按比例放大/缩小。我通过调整 xib 的尺寸直接在 Interface Builder 中测试行为。

有效的是为每个箭头设置 autoresizingMask 中的所有箭头UIButton并最大化视图。但是最小化它会扭曲地图。

不幸的是,这是我第一次在 Xcode 中使用 Interface Builder。在这里您可以找到源文件。谢谢!

编辑: 在 autoresizingMask 中仅设置宽度和高度的箭头可以在不失真的情况下缩小比例。升级会将零件分开。如何同时支持适当的放大/缩小?

Edit1: 替换了在界面生成器中正确调整大小UIButton的每个!UIImage请参阅此处的回购。不幸的是,在模拟器设备上,自动调整大小不同,地图部分不再粘在一起。将 Main.storyboard 中的 UIView 的大小设置为 xib 的大小,Autoresizing 可以完美地工作(在多个设备上测试)。但后来在“真实”项目中,我无法控制父母的视图尺寸。用这行代码玩了一点点,它似乎负责“阻止”自动调整大小。如何避免这种情况?提前致谢。我想我可能将 Autoresizing 与 AspectFit 混合在一起,这似乎没有任何效果。

标签: iosinterface-builder

解决方案


我想如果所有 Bundesländer 的图像都具有相同的大小,那会容易得多。将它们全部放在一个共同的视图中。给所有的按钮零填充到所有边。子类 UIButton 以检查触摸事件是否在非透明像素上。搜索“不规则按钮 ios”以了解更多信息。


我可以使用这些图像来实现这一点,这些图像具有相同的大小,添加了边框以显示大小

NDS 北威州 黑森州 萨克森-安哈尔特

而这个约束

iPhone的限制 iPad的限制

最重要的约束可能是 MapWrapper 上的 Aspect Ratio Constraint,即包含所有按钮的视图。


使用 Ole Begemann 的OBShapedButton OBShapedButton


一些注意事项:

  • 您的图像内容非常适合分解图形。将它们导出为 pdf 并将它们添加到您的资产中,例如单个比例
  • 您不应该在图像中包含州名称,而应将其用作按钮标题。要正确定位它们,请使用标题插图。

示例项目:https ://github.com/vikingosegundo/germanStateSelection


推荐阅读