Xcode Interface Builder-使复合地图多屏兼容

时间:2019-05-13 08:40:32

标签: ios interface-builder

获得了一个由多个部分组成的地图:

enter image description here

每个部分都是一个带有图像的UIButton。我放置了所有东西以组成地图,然后看起来一切都很好。我遇到的问题是要针对不同的屏幕尺寸调整View的大小。尝试使用“自动调整大小”和“约束”,但无法使其看起来正确以最小化和最大化它。零件应始终一起生病,并根据屏幕尺寸上下缩放。我正在通过调整xib的尺寸直接在Interface Builder中测试行为。

有效的方法是在autoresizingMask中为每个UIButton设置所有箭头,并最大化视图。但是将其最小化会使地图失真。

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

编辑: 只需在autoresizingMask中设置宽度和高度的箭头,就可以缩小尺寸而不会变形。升级会将零件分开。如何同时支持适当的上/下缩放?

编辑1: 将每个UIButton替换为UIImage,它们在Interface Builder中可以正确调整大小!参见repo here。不幸的是,在Simualtor设备上,“自动调整大小”有所不同,并且地图部件不再粘在一起。将Main.storyboard中的UIView的大小完全设置为xib的大小,自动调整大小功能就可以完美地工作(在多个设备上测试)。但是后来在“真实”项目中,我无法控制父级的视图尺寸。 用this line of code播放了一点点,似乎是对“阻止”自动调整大小起作用。如何避免呢?提前致谢。我想我可能将自动调整大小与AspectFit混在一起了,这似乎没有效果。

1 个答案:

答案 0 :(得分:0)

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


我可以使用这些图像来实现此目的,这些图像具有相同的大小,并添加了边框以演示大小

NDS NRW Hessen Sachsen-Anhalt

此约束

the constraints iPhone the constraints iPad

最重要的约束可能是MapWrapper上的纵横比约束,该视图包含所有按钮。


使用Ole Begemann的OBShapedButton OBShapedButton


一些注意事项:

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

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