iOS UIButton如何制作这样漂亮的按钮?

时间:2011-10-28 15:25:45

标签: iphone ios background uibutton

这是UIButton吗?如果是,背景红色怎么办?显然,事实并非如此 红色UIColor? Xcode中是否包含相同的工具或实用程序以允许制作按钮 像这样?

enter image description here

5 个答案:

答案 0 :(得分:15)

您可以使用私有类UIGlassButton生成类似的按钮。 我先在@schwa http://pastie.org/830884看到它。

在iOS模拟器中使用此代码运行应用程序以创建自定义按钮(或在设备中,保存到$(APP)/ Documents并启用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后,将其用作按钮背景。

或者,您可以build the buttons programmatically(作者:Jeff Lamarche)。

答案 1 :(得分:5)

我写了几个类来为我写的计算器生成按钮。这些类根据标准颜色或RGB输入RGB值生成按钮。这些按钮位于Github上的BindleKit项目中:https://github.com/bindle/BindleKit

我对Change UIButton background color的回答描述了如何使用这些类以及在何处查找源代码。

要查看按钮的示例,请在Github项目中编译BKCatalog应用程序或查看屏幕截图https://github.com/bindle/BindleKit/blob/master/screenshots/BKCatalog-BKButtons.png

答案 2 :(得分:4)

您可以使用核心动画图层创建一个类似按钮的按钮。

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

答案 3 :(得分:4)

您需要为按钮创建背景图像。

然后将图像添加到按钮:

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

另外,对于可调整大小的按钮,请参阅:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

您可以使用图形转换器,Photoshop等程序。

答案 4 :(得分:4)

在iOS 5下,你有UIAppearance。