61

我开始创建一个非常简单的井字游戏。主要目标是使视图与所有 iOS 设备的所有屏幕尺寸成比例。因此,我将图像放在 a 上ViewController,使其全屏显示,然后将其放入 Stack View 中。我已经向这个 Stack View 0 添加了所有方面的约束。当我运行模拟器时,一切看起来都很好。但我在控制台面板中收到一条消息。这是什么意思?

截屏

4

4 回答 4

158

这可能是因为您更改了 StackView 的 Mode 属性:

在此处输入图像描述

当我将 Mode 设置为 Aspect Fit 时,我收到了这个警告。

于 2015-10-31T17:41:43.947 回答
75

a 上的任何图层更改UIStackView都将导致此警告。正如警告指出的那样,这UIStackView是一个仅转换层,它与UIView. 根据文档:

UIStackView 是 UIView 的非渲染子类;也就是说,它不提供任何自己的用户界面。相反,它只管理其排列视图的位置和大小。因此,某些属性(如 backgroundColor)对堆栈视图没有影响。同样,您不能覆盖 layerClass、drawRect: 或 drawLayer:inContext:。

更多关于这个here

它可能没有指出 OP 问题的确切来源,但希望它能阐明为什么UIStackView行为不一样并且不应与UIView.

于 2016-05-25T21:12:48.087 回答
4

对于需要的人:我clipToBounds在 StackView 中设置为 false。

于 2018-10-08T15:17:15.967 回答
2

看起来你所做的完全正确。

但是,我想知道为什么您选择将您的 imageview 放入 stackview 中,而您可以在没有 stackview 的情况下轻松固定侧面。我是 stackviews 的忠实粉丝,但它们在任何地方都没有意义。除非您打算添加新视图并调整您的 ticktactoe 板的大小,否则我可能不会使用它。

于 2015-10-30T17:16:13.603 回答