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

Iphone iOS UIButton如何制作这样漂亮的按钮?,iphone,ios,background,uibutton,Iphone,Ios,Background,Uibutton,这是一个按钮吗?如果是,背景红是怎么做的?显然,事实并非如此 红色?Xcode中是否包含相同的工具或实用程序来制作按钮 像这样 您可以使用核心动画层制作这样的按钮 您需要为按钮创建背景图像 然后将图像添加到按钮: - (void)setImage:(UIImage *)image forState:(UIControlState)state 有关可调整大小的按钮,请参见: - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capIns

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


您可以使用核心动画层制作这样的按钮


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

然后将图像添加到按钮:

- (void)setImage:(UIImage *)image forState:(UIControlState)state
有关可调整大小的按钮,请参见:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

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

您可以使用私有类
UIGlassButton
生成类似的按钮。 我首先在这里看到的是@schwa

在iOS模拟器中使用此代码运行应用程序以创建自定义按钮(或在设备中,保存到$(应用程序)/文档并启用iTunes文件共享)

Class theClass=NSClassFromString(@“UIGlassButton”);
UIButton*theButton=[[theClass alloc]initWithFrame:CGRectMake(10,10,120,44)]自动释放];
//自定义颜色
[按钮设置值:[UIColor COLOR WITH HUE:0.267饱和度:1.000亮度:0.667 alpha:1.000]forKey:@“tintColor”];
//[按钮设置标题:@“接受”状态:uicontrol状态正常];
[self.view添加子视图:按钮];
UIGraphicsBeginImageContext(button.frame.size);
CGContextRef theContext=UIGraphicsGetCurrentContext();
[theButton.layer renderInContext:theContext];
UIImage*theImage=UIGraphicsGetImageFromCurrentImageContext();
NSData*数据=UIIMAGEPNGRE显示(图像);
[数据写入文件:@”/Users//Desktop/button.png“原子:否];
UIGraphicsSendImageContext();
获得png后,将其用作按钮背景


或者,您也可以(Jeff Lamarche)。

在iOS 5下,您可以使用UIAppearance。

我编写了几个类来为我编写的计算器生成按钮。这些类基于标准颜色或RGB输入RGB值生成按钮。按钮位于Github上的my BindleKit项目中:

我对的回答描述了如何使用这些类以及在何处查找源


要查看按钮示例,请在Github项目中编译BKCatalog应用程序,或者查看屏幕截图

我在其他地方实际使用过这种技术,但它的外观从来没有我包含的图片那么好。这是一个“玻璃般”的后端,具有很强的过渡性。。我希望Xcode能有一个图形工具来制作这样的按钮。。我想,我需要和一位图形艺术家谈谈..向下投票,因为用这些技术生成的按钮在任何地方都不像问题中提供的示例那样好。@mason实际上,它们生成的图像看起来和上面的一样好。我猜你还不够熟练,不能正确使用它们,我为你感到抱歉。@logancautrell无意冒犯。但是,愿意分享一些看起来同样好的例子吗?我所能做的就是提供的页面上显示的示例。它们产生的效果远不如标准的、以图形为背景的按钮,就像这个问题中的按钮。在第二个链接的情况下,示例显示渐变应用于文本顶部,这看起来很糟糕。如果有人能够用第一个链接中的技术制作出外观同样好的按钮,我还没有看到,我很乐意看到。创建基于图形的按钮可以节省我几个小时的时间。可能是@geekyaleks的重复-请注意,使用这样的私有类可能会导致应用商店拒绝您的应用程序。使用一种编程解决方案为按钮添加光泽可能更安全。我不知道我听说有人拒绝使用UIGlassButton,但这并不意味着苹果将来不会拒绝。此外,他们可能会在将来的操作系统更新中更改类名,而您的按钮将不再正确。@BradLarson该类在应用程序中没有使用,只是用于创建PNG。我们使用从他们的软件中获取的图像会不会困扰苹果的评论员?从技术上讲,我们是自己制作的,但我们遵守他们的规则。
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();