代码之家  ›  专栏  ›  技术社区  ›  Badr Bujbara

iOS:在iPhone 8和iPhone 8 plus屏幕上设置视图

  •  0
  • Badr Bujbara  · 技术社区  · 8 年前

    我有一个定制的手机笔尖,我希望它能同时适合iPhone 8和iPhone 8 plus屏幕。我只能让它适合其中一个,但不能同时适合两个。我想让视图宽度为414的正视图和375的正视图,所以我决定对traits使用vary,这是行不通的。

    以下是8+设置: enter image description here

    单击“完成更改”后,我将正常值设置为8,如下所示 enter image description here

    它不起作用。只有当我手动将笔尖宽度拖动到375或414时,它才适用于其中一个。例如,如果我将笔尖拖到375,则加号将如下所示: enter image description here

    如何使此笔尖适合所有屏幕?我有一个集合视图,所有边上都有0个边距约束,单元格大小的设置如下:

        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: view.frame.width, height: view.frame.height)
    }
    

    所以我不知道为什么会这样。

    3 回复  |  直到 8 年前
        1
  •  0
  •   mercsst    8 年前

    您不应该创建宽度+高度约束和中心imageView,而应该将其侧面连接到其superview。如果集合视图约束设置正确,并且SizeFormatindeXPath:返回正确的值,它将执行您想要的操作。

        2
  •  0
  •   vatsal raval    8 年前

    使用前导、尾随并为superview指定等宽,并根据设置乘数常量。因此,它将根据屏幕大小进行调整。(iPhone 8为375,iPhone 8 plus为414)。 如果希望宽度覆盖整个宽度,请将乘数设置为1。你就完了。

        3
  •  0
  •   Badr Bujbara    8 年前

    问题的原因是我覆盖了layoutSubviews并将其保留为空。

        override func layoutSubviews() {
    }
    

    刚把它取下来,一切都很好。