2016-12-30 3 views
0

Я делаю маркер оценки для игры. По мере роста оценки я хочу, чтобы маркер вырос, чтобы он мог вместить дополнительные цифры, которые добавляются. Я хочу, чтобы изменение размера было гладким, а также оживляло новый балл, который отображается. Сначала я использовал UILabel, но позже выяснил, что я не могу анимировать фон и текст независимо (потому что они находятся на одном уровне).Избегайте ограничений размера UIVIew

я решил подкласс UIView и добавить CATextLayer как подслоем, так что я теперь анимировать фона (UIView слоя) и текст (CATextLayer подслоем) независимо друг от друга.

Он отлично работает за исключением одной вещи, я поставил маркер в центре нижней части экрана, как это: enter image description here

проблема заключается в том, что я получаю ошибку о том, следует добавить ограничения для й и у позиции или ширины и высоты. Поскольку я хочу, чтобы представление могло расти, я не могу добавить ограничения размера, и поскольку он относительный, я не могу добавить ограничения x или y. Использование ограничения неравенства бесполезно по мере возникновения ошибки.

Я знаю, что это не проблема, используя ILabel, UIButton или какой-либо другой подкласс UIView. Я предполагаю, что я мог бы подклассифицировать UILabel вместо этого и просто оставить текст пустым, чтобы добиться такого же эффекта, плюс мне не придется беспокоиться об этих ограничениях, но это кажется несколько неправильным. Кроме того, UILabel уже является подклассом UIView, поэтому я предполагаю, что, вероятно, есть возможность избежать установки ограничений по размеру.

Есть ли что-то, что я могу сделать для подкласса UIView или я должен просто подкласса UILabel или что-то в этом роде и получить его бесплатно.

ответ

0

Пробег СОДЕРЖАНИЕ ПРИОРИТЕТ СОДЕРЖАНИЯ. или СОДЕРЖАНИЕ ПРИОРИТЕТНОСТИ СОПРОТИВЛЕНИЯ СЖАТИЯ. Вот урок, чтобы понять их четко, если вы не знакомы с ними. Hugging priority Vs Compression resistence

Существует еще один вариант попробовать. Если получение автоматических ошибок макета - единственная проблема, с которой вы сталкиваетесь, за исключением всего, что хорошо, вы можете использовать Ограничители места размещения.

Смежные вопросы