Я делаю маркер оценки для игры. По мере роста оценки я хочу, чтобы маркер вырос, чтобы он мог вместить дополнительные цифры, которые добавляются. Я хочу, чтобы изменение размера было гладким, а также оживляло новый балл, который отображается. Сначала я использовал UILabel
, но позже выяснил, что я не могу анимировать фон и текст независимо (потому что они находятся на одном уровне).Избегайте ограничений размера UIVIew
я решил подкласс UIView
и добавить CATextLayer
как подслоем, так что я теперь анимировать фона (UIView
слоя) и текст (CATextLayer
подслоем) независимо друг от друга.
Он отлично работает за исключением одной вещи, я поставил маркер в центре нижней части экрана, как это:
проблема заключается в том, что я получаю ошибку о том, следует добавить ограничения для й и у позиции или ширины и высоты. Поскольку я хочу, чтобы представление могло расти, я не могу добавить ограничения размера, и поскольку он относительный, я не могу добавить ограничения x или y. Использование ограничения неравенства бесполезно по мере возникновения ошибки.
Я знаю, что это не проблема, используя ILabel
, UIButton
или какой-либо другой подкласс UIView. Я предполагаю, что я мог бы подклассифицировать UILabel вместо этого и просто оставить текст пустым, чтобы добиться такого же эффекта, плюс мне не придется беспокоиться об этих ограничениях, но это кажется несколько неправильным. Кроме того, UILabel
уже является подклассом UIView, поэтому я предполагаю, что, вероятно, есть возможность избежать установки ограничений по размеру.
Есть ли что-то, что я могу сделать для подкласса UIView или я должен просто подкласса UILabel или что-то в этом роде и получить его бесплатно.