iOS UIButton как сделать такие красивые кнопки? - PullRequest
19 голосов
/ 28 октября 2011

Это UIButton? Если это так, как делается красный фон? Очевидно, это не красный UIColor? Есть ли такой же инструмент или утилита, включенная в Xcode, чтобы позволить создавать кнопки как это?

enter image description here

Ответы [ 5 ]

15 голосов
/ 28 октября 2011

Вы можете генерировать аналогичные кнопки с закрытым классом UIGlassButton. Я впервые увидел это здесь http://pastie.org/830884 от @schwa.

Запустите приложение с этим кодом в симуляторе iOS, чтобы создать пользовательскую кнопку (или на устройстве сохранить в $ (APP) / Документы и включить общий доступ к файлам iTunes).

Class theClass = NSClassFromString(@"UIGlassButton");
UIButton *theButton = [[[theClass alloc] initWithFrame:CGRectMake(10, 10, 120, 44)] autorelease];
// Customize the color
[theButton setValue:[UIColor colorWithHue:0.267 saturation:1.000 brightness:0.667 alpha:1.000] forKey:@"tintColor"];
//[theButton setTitle:@"Accept" forState:UIControlStateNormal];
[self.view addSubview:theButton];

UIGraphicsBeginImageContext(theButton.frame.size);
CGContextRef theContext = UIGraphicsGetCurrentContext();
[theButton.layer renderInContext:theContext];

UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
NSData *theData = UIImagePNGRepresentation(theImage);
[theData writeToFile:@"/Users/<# your user #>/Desktop/button.png" atomically:NO];
UIGraphicsEndImageContext();

Как только вы получите png, используйте его в качестве фона кнопки.

Кроме того, вы можете программно создавать кнопки (Джефф Ламарш).

5 голосов
/ 28 октября 2011

Я написал пару классов для генерации кнопок для калькулятора, который я написал.Классы генерируют кнопки на основе стандартных цветов или значений RGB, введенных RGB.Кнопки в моем проекте BindleKit на Github: https://github.com/bindle/BindleKit

Мой ответ на Изменение цвета фона UIButton описывает, как использовать классы и где найти источник.

Чтобы увидеть примеры кнопок, скомпилируйте приложение BKCatalog в проекте Github или посмотрите на скриншот https://github.com/bindle/BindleKit/blob/master/screenshots/BKCatalog-BKButtons.png

4 голосов
/ 28 октября 2011

А под iOS 5 у вас есть UIAppearance.

4 голосов
/ 28 октября 2011

Вам необходимо создать фоновое изображение для кнопки.

Затем добавьте изображение к кнопке:

- (void)setImage:(UIImage *)image forState:(UIControlState)state

Также для кнопок с изменяемым размером см .:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

Вы можете использовать такие программы, как Graphics Converter, Photoshop и др.

4 голосов
/ 28 октября 2011

Вы можете сделать такую ​​кнопку с основными слоями анимации.

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

...