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