3

Я хотел бы добавить 3D или глянцевый взгляд на некоторые iPhone UIButtons, но делать это без использования PNG или растягиваемых изображений. У меня много кнопок разных форм и размеров с большим количеством цветов, которые генерируются «на лету», поэтому предварительные изображения в моем случае невозможны.Как программно обеспечить глянцевый вид UIButtons?

Как вы могли бы сделать рисунок на этих кнопках программным путем?

ответ

3

В this answer, я обеспечиваю некоторый код для рисования градиента блеска над UIView, но Mirko's answer к тому же вопросу показывает более эффективный способ сделать это.

В качестве примера для моего курса я создал более сложный трехмерный стиль кнопки, с блеском и затенением. Код для этой трехмерной кнопки является частью пакета, который можно загрузить here (найдите подкласс MATCGlossyButton UIButton). Я описываю рисунок этого элемента в видео для кварцевого 2D-класса из весеннего семестра моего курса развития iPhone на iTunes U.

1

Один из способов сделать это программно - изменить свойства слоя UIButton. Например, можно добавить экземпляр CAGradientLayer в качестве подслоя, установите радиус закругления слоя, изменять его границы, и т.д. Мэтт Лонг написал большую статью об этом:

http://www.cimgf.com/2010/01/28/fun-with-uibuttons-and-core-animation-layers/

-1
UIButton *button1     = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 200, 40)]; 
button1.backgroundColor   = [UIColor blackColor]; 

CAGradientLayer *gradient = [CAGradientLayer layer]; 
gradient.frame = button1.bounds; 
gradient.colors = [NSArray arrayWithObjects: (id)[[UIColor grayColor] CGColor],(id)[[UIColor blackColor] CGColor], nil]; 
[button1.layer insertSublayer:gradient atIndex:0]; 
+2

Некоторое объяснение того, что это будет, было бы хорошо. –

 Смежные вопросы

  • Нет связанных вопросов^_^