我正在制作游戏的分数标记。随着分数的增长,我希望标记增长,以便它可以容纳正在添加的额外数字。我希望调整大小平滑,并为显示的新分数设置动画。起初我使用的是UILabel
,但后来发现我不能独立地为背景和文本设置动画(因为它们位于同一层中)。
我决定继承UIView
并添加CATextLayer
作为子图层,以便我现在可以为背景(UIView
图层)和文本(CATextLayer
设置动画。子层)独立。
除了一件事,它的效果很好,我将标记放在屏幕的中央底部,如下所示:
问题是我得到一个错误,说我应该为x和y位置或宽度和高度添加约束。由于我希望视图能够增长,因此我无法添加大小限制,因为它是相对的,所以我无法添加x或y约束。使用不等式约束是无用的,因为错误仍然存在。
我知道使用ILabel
,UIButton
或UIView的其他一些子类时,这不是问题。我想我可以将UILabel子类化,只是将文本留空以达到相同的效果,而且我不必担心这些限制,但这感觉有点不对。除了UILabel
已经是UIView的子类,所以我猜可能有一个选项可以避免设置大小约束。
我能做些什么来继续UIView的子类,或者我应该只是继承UILabel或类似的东西并免费获得它。
答案 0 :(得分:0)
尝试内容暂停优先。或内容压缩优先级。如果您不熟悉它们,这是一个清楚地了解它们的教程。 Hugging priority Vs Compression resistence
还有另一种选择。如果获得自动布局错误是您面临的唯一问题,除了一切都很好,您可以使用占位符约束。