避免UIVIew大小限制

时间:2016-12-30 20:45:40

标签: ios cocoa-touch uiview autolayout interface-builder

我正在制作游戏的分数标记。随着分数的增长,我希望标记增长,以便它可以容纳正在添加的额外数字。我希望调整大小平滑,并为显示的新分数设置动画。起初我使用的是UILabel,但后来发现我不能独立地为背景和文本设置动画(因为它们位于同一层中)。

我决定继承UIView并添加CATextLayer作为子图层,以便我现在可以为背景(UIView图层)和文本(CATextLayer设置动画。子层)独立。

除了一件事,它的效果很好,我将标记放在屏幕的中央底部,如下所示:enter image description here

问题是我得到一个错误,说我应该为x和y位置或宽度和高度添加约束。由于我希望视图能够增长,因此我无法添加大小限制,因为它是相对的,所以我无法添加x或y约束。使用不等式约束是无用的,因为错误仍然存​​在。

我知道使用ILabelUIButton或UIView的其他一些子类时,这不是问题。我想我可以将UILabel子类化,只是将文本留空以达到相同的效果,而且我不必担心这些限制,但这感觉有点不对。除了UILabel已经是UIView的子类,所以我猜可能有一个选项可以避免设置大小约束。

我能做些什么来继续UIView的子类,或者我应该只是继承UILabel或类似的东西并免费获得它。

1 个答案:

答案 0 :(得分:0)

尝试内容暂停优先。或内容压缩优先级。如果您不熟悉它们,这是一个清楚地了解它们的教程。 Hugging priority Vs Compression resistence

还有另一种选择。如果获得自动布局错误是您面临的唯一问题,除了一切都很好,您可以使用占位符约束