【问题标题】:Stick 2 Image views dimensions in all iOS devicesStick 2 所有iOS设备中的图像视图尺寸
【发布时间】:2018-03-14 13:30:10
【问题描述】:

我要感谢为这个社区做出贡献的任何人,感谢我为下面提出的问题找到解决方案:

this is a capture of my xcode project Main Storyboard:

它包含一个带有网格图片的背景图像视图和一个带有圆环图片的小图像视图。两个视图的内容模式相同,适合宽高比。

我在这里想要实现的是在所有设备上获得两个图像之间的相同组合,如这张图片中所示。 所以基本上将 cercle 图像粘贴到背景图像(网格图像)上,这样如果背景图像的尺寸在另一台设备上发生变化,则 cercle 图像的尺寸也会以相同的方式改变,以保持与这张图片相同的视图。

【问题讨论】:

  • contentMode 和 Aspect Ratio 怎么样?
  • 两个视图的内容模式相同:两者都没有选择宽高比和宽高比
  • 您是否尝试过使用比例约束?假设两个图像都是“正方形”(宽度与高度相等),将圆形图像视图的宽度限制为网格图像视图的宽度,乘数为 0.1(或任何正确的比率)?
  • 靠近圆环的红线是相等的宽度和高度约束,我尝试了高度乘数为 0.059,宽度为 0.077

标签: ios xcode


【解决方案1】:

我抓住了你的图片并剪掉了圆圈。

“网格”实际像素为312 x 324。 “圈子”是30 x 30

我将grid imageView设置为fill,宽高比为312:324,与superview的宽度为0.75

我将圆形imageView设置为fill,网格imageView的宽高比为1:1,宽度约束为30:312

结果如下:

您需要计算放置的“运行时间”比率,但这很简单。


编辑:

我做了一个简单的例子 - 有按钮可以根据交点移动圆圈:https://github.com/DonMag/GridScale

【讨论】:

  • 对其他展示位置有效吗? (您选择了网格的中心)
  • sizing 独立于展示位置...我假设您已经在计算一种分辨率的展示位置?如果是这样,只需将其转换为新的“运行时”分辨率。例如,如果垂直线在“原始”分辨率下相距 30 磅,则将其乘以 runtimeWidth / nativeWidth。尺寸约束将保持尺寸相对,无需任何额外编码。
  • 您是否将网格 imageView 设置为宽高比填充?
  • 两者都设置为fill... imageView 上的宽高比消除了aspectFill 的需要。
  • please define runtimeWidth,runtime ratio,run-time" resolution,native width?填充和纵横填充有什么区别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多