在仅变换图层中更改属性contentsGravity将不起作用

Ale*_*lke 53 xcode ios ios9 xcode7 uistackview

我开始创造一个非常简单的tic-tac-toe游戏.主要目标是使视图与所有iOS设备的所有屏幕大小成比例.所以我将图像放在a上ViewController,使其成为完整大小的屏幕,然后将其放入堆栈视图中.我已向所有方面添加了对此Stack View 0的约束.当我运行模拟器时,一切看起来都不错.但我在控制台面板中收到一条消息.这是什么意思?

截图

Lub*_*cik 129

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

在此输入图像描述

当我将Mode设置为Aspect Fit时,我收到了此警告.

  • **你是怎么想出来的?**警告没有显示导致问题的原因.但是在遇到这个问题之后,你的方法解决了这个问题.我仍然很想知道你弄清楚这个问题的方法. (17认同)
  • 我将模式设置回Scale To Fill并且警告消失了.谢谢. (4认同)
  • 这在2019年仍然是一件事情(Xcode 10.2.1)... (2认同)

vic*_*ica 64

a上的任何图层更改UIStackView都将导致此警告.正如警告所指出的那样,它UIStackView是一个仅变换层,它与a略有不同UIView.根据文件:

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

更多关于这里.

它可能没有指出OP问题的确切来源,但希望它能说明为什么UIStackView行为不同并且不应该混淆UIView.

  • 我认为这是迄今为止最准确的答案 (2认同)