iOS:在 iPhone 8 和 iPhone 8 plus 屏幕上设置视图
Posted
技术标签:
【中文标题】iOS:在 iPhone 8 和 iPhone 8 plus 屏幕上设置视图【英文标题】:iOS: Setup a View on iPhone 8 and iPhone 8 plus screens 【发布时间】:2018-01-08 18:53:21 【问题描述】:我有一个自定义单元笔尖,我希望它适合 iPhone 8 和 iPhone 8 plus 屏幕。我只能让它适合其中一个,但不能同时适合两者。我想让视图宽度等于 414 的加号和 375 的正常,所以我决定对特征使用变化,这是行不通的。
这是 8 plus 设置:
点击完成变化后,我像这样设置正常的 8
它不工作。只有当我手动将笔尖宽度拖动到 375 或 414 时,它才适用于其中一个。例如,如果我将笔尖拖动到 375,那么加号将如下所示:
如何让这个笔尖适合所有屏幕?我的集合视图四面都有 0 边距约束,并且单元格大小设置如下:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
return CGSize(width: view.frame.width, height: view.frame.height)
所以我不知道为什么会这样。
【问题讨论】:
【参考方案1】:您不应该创建宽度+高度约束和中心 imageView,而是将其侧面挂钩到其父视图。如果集合视图约束设置正确并且 sizeForItemAtIndexPath: 返回正确的值,它将执行您想要的操作。
【讨论】:
我对宽度或高度没有限制,它是可调整大小的笔尖视图。我不确定我应该把它放在什么尺寸,所以它适合所有屏幕。我有单元格在 sizeForItem 方法中覆盖整个屏幕。我将其添加到问题中。 将视图和照片 ImgV 挂钩到具有约束的超级视图或为其设置自动调整大小的蒙版。 Nib 视图不会自行调整大小。如果您不设置约束,则视图将保持 nib 的大小和位置。我非常怀疑您是否需要为 PhotoImgView 放置确切的大小或为此任务使用 sizeClasses。【参考方案2】:使用前导,尾随并给superview提供equalWidth并根据它设置乘数常数。所以它会根据屏幕大小进行调整。 (iPhone 8 为 375,iPhone 8 plus 为 414)。 如果您希望宽度覆盖整个宽度,则将乘数设置为 1。您就完成了。
【讨论】:
【参考方案3】:问题的原因是我覆盖了 layoutSubviews 并将其留空。
override func layoutSubviews()
刚刚删除它,一切顺利。
【讨论】:
以上是关于iOS:在 iPhone 8 和 iPhone 8 plus 屏幕上设置视图的主要内容,如果未能解决你的问题,请参考以下文章
在 iPhone 5s iOS 8.1.2 和 Simulator 8.1 上找不到支持 type 4 和 5 的键盘
运行 iOS 8.3 的 iPhone 在 Xcode 6.2 中显示为不合格
在iPhone 8上的iOS 11.2上运行的离子动态图像,但在iPhone 6上不在11.2上