UILabel анимированный побочный эффект изменения размера - PullRequest
1 голос
/ 22 июля 2010

Я столкнулся с проблемой, когда мне нужно анимировать изменение высоты рамки UILabel или рамки вмещающего вида.Метка многострочная.

Проблема заключается в том, что при большом тексте он изначально не помещается в метку (скажем, занимает 3 строки), затем анимируется высота метки для увеличения, сразу же изменяется 3 строки на 4, а затем анимацияувеличение рамки.

Противоположный эффект - когда текст полностью помещается в метку (4 строки), тогда я оживляю уменьшение высоты, 4 строки мгновенно становятся 3, и только тогда я вижу уменьшение размера рамки анимации.

Это, конечно, плохо для глаз.

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

1 Ответ

0 голосов
/ 22 июля 2010

Если вы хотите сохранить origin.y без изменений, вам нужно анимировать его с помощью CoreAnimation. Установить один раз:

label.layer.anchorPoint = CGPointMake(0,0); //I believe 0,0 is the upper left or it was 0,1?

после этого вам просто нужно соответственно изменить размер:

Я бы сначала измерил текст (с помощью методов NSString) и увидел, нужно ли изменять размер метки В случае, если это необходимо затем настроить label.numberOfLines и label.layer.bounds = CGRectMake(label.layer.bounds.origin.x,label.layer.bounds.origin.y, label.layer.size.width, newHeight);

Это должно работать

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...