UILabel animation - развернуть рамку анимации не растянуто снизу - PullRequest
0 голосов
/ 05 января 2011

У меня есть следующий код:

desc = [[UILabel alloc] initWithFrame:CGRectMake(134, 5, 185, 60)];
[desc setNumberOfLines:20];
[dataView addSubview:desc];
desc.text =@"1111\n2222\n3333\n4444\n5555\n6666\n7777\n8888" ;

данные не помещаются на этикетке, поэтому я вижу что-то вроде:

1111
2222
3333
4444 ...

У меня также есть кнопка, при нажатии которой я хочу развернуть метку, чтобы все данные были видны. Для этого у меня есть следующий код:

CGSize newDescSize = [desc.text sizeWithFont:[UIFont italicSystemFontOfSize:12] constrainedToSize:CGSizeMake(185, 400)];

[UIView beginAnimations:@"expandDesc" context:nil];
[UIView setAnimationDuration:1.0];

CGRect frame = desc.frame;
frame.size.height=newDescSize.height;
desc.frame=frame;

[UIView commitAnimations];

Работает нормально, за исключением того, что анимация начинается с вида:

3333
4444
5555
6666

и при расширении обе линии добавляются снизу и сверху, поэтому анимация не плавная, я хочу, чтобы текст расширялся по сравнению с исходным текстом, а строки добавлялись внизу.

кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 05 января 2011

Нет ничего плохого. Метод -drawRect: UILabel оптимизирован так, что он не рисует за его пределами. Проще говоря, это означает, что у вас не будет плавного перехода для него, он будет дергаться с обоих концов. Без использования собственного класса я не знаю, что вы можете сделать.

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