CAAnimation на UIButton

Я пытался создать простой переход смахиванием. Однако кнопки кажутся невосприимчивыми к любой CAAnimation, которая обрезается.

Я пытаюсь сделать так, чтобы полоса перемещалась по экрану, и когда она проходит над кнопкой, она удаляет только что пройденную часть.

Я пробовал bounds.width, size.x и многие другие пути ключ-значение для достижения эффекта, но не получил того, что хотел. Он просто перемещает текст, который всегда остается полностью видимым. Я также пытался изменить UIButton на UIImage, но текст, похоже, не печатается на UIImage. Я тоже пытался использовать маски, но слышал, что их нужно использовать как можно реже, так как они потребляют ресурсы телефона. В любом случае, я не очень далеко продвинулся с этим, так как я не использовал их раньше. Я также попытался поместить его в представление контейнера, а затем изменить его размеры, но снова весь текст остался полностью видимым.

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

Есть ли у кого-нибудь предложения о том, как добиться перехода на UIButton?

Помощь будет высоко оценена.

Спасибо


person Theo    schedule 08.07.2011    source источник
comment
Какой код вы пытаетесь запустить?   -  person    schedule 09.07.2011
comment
Проблема не в том, что код не работает. Проблема в том, что я не знаю, какой код написать для достижения нужного мне эффекта.   -  person Theo    schedule 09.07.2011


Ответы (1)


Я думаю, что вы ищете на самом деле маску. См. руководство здесь: http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

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

Редактировать: я действительно ничего не слышал о перехвате ресурсов, тем более, что это простая основная графика.

person Daniel G. Wilson    schedule 09.07.2011
comment
Спасибо XenElement. Я пробовала использовать маски раньше. Однако в учебнике вы предлагаете маскировать изображение. Я не могу сделать UIButton изображением, так как текст исчезает, как только я его изменил. Знаете ли вы способ изменить UIButton на UIImage и сохранить текст? Ваше здоровье - person Theo; 09.07.2011
comment
Что вы подразумеваете под сохранением текста? Сохранять заголовок кнопки видимым? - person Daniel G. Wilson; 09.07.2011
comment
Да, по какой-то причине заголовок кнопки больше не отображается, когда я меняю его на UIImage. Если у вас есть способ сделать это, я был бы очень признателен. Если бы я изменил его на UIImage (и текст остается видимым), то могу ли я не просто анимировать границы и создать нужный эффект? Спасибо за помощь. - person Theo; 09.07.2011
comment
Теоретически вы можете добавить UILabel поверх кнопки, чтобы заголовок отображался отдельно. Затем анимируйте кнопку за ней, как хотите. Примечание: не забудьте указать userInteractionEnabled = FALSE на этикетке. - person Daniel G. Wilson; 10.07.2011
comment
Использование маски работает хорошо, и вам не нужно преобразовывать UIButton в UIImage. Однако трудно сказать, что происходит с вашими масками, в чем я ошибся ранее, поэтому я рекомендую изменить цвет фона, чтобы помочь. - person Theo; 16.07.2011