Как я могу оживить изменение высоты UIButton без деформации изображения? - PullRequest
0 голосов
/ 06 декабря 2011

Я использую [UIView animateWithDuration:animations:], чтобы скрыть UIButton, изменив frame.size.height на 0.Однако, как только начинается анимация, закругленный прямоугольник и фон немедленно исчезают, а текст кнопки отсекает границы вида.

Код, который я использую, довольно прост:

CGRect newFrame = button.frame;
newFrame.size.height = 0;
[UIView animateWithDuration:2.0 animations:^{
    button.frame = newFrame;
}];

Я заметил, что это происходит только тогда, когда я устанавливаю высоту на 0. Кажется, что когда анимация начинается, кнопка просто перерисовывается один раз в своем конечном состоянии.Анимация выполняется путем масштабирования этого статического изображения от исходного размера до окончательного.Поскольку кнопка с высотой 0 не может быть видна, это приводит к исчезновению целого округлого прямоугольника (за исключением текста на кнопке, поскольку это другой вид).

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

Ответы [ 3 ]

0 голосов
/ 06 декабря 2011

Почему бы просто не установить альфа-значение вашей кнопки на 0 в вашей анимации? Или вам нужно оживить его высоту?

0 голосов
/ 07 декабря 2011

Сделайте снимок изображения кнопки и выполните анимацию аффинного преобразования, поворачивая изображение вверх или изменяя масштаб y.

0 голосов
/ 06 декабря 2011

Работает ли лучше, если вы делаете что-то подобное?

CGRect newFrame = button.frame;
newFrame.size.height = 1;

[UIView animateWithDuration:2.0 
                 animations:^{button.frame = newFrame;} 
                 completion:^{button.hidden = YES;}];

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

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