问题实现Glass Button UIButton

时间:2013-03-21 23:11:24

标签: iphone ios pointers user-interface uibutton

我是iphone开发的小伙伴,我在尝试实现Glass Buttons(found here)时遇到了一个奇怪的问题。我的构建失败,因为我在MOGlassButtons.m文件中遇到“意外的@in程序错误”。我无法找到有关如何解决此问题的任何内容。非常感谢任何帮助。

MOGlassButton.m

self.gradientLayer1.colors = @[(id)[MO_RGBACOLOR(255, 255, 255, 0.45) CGColor], (id)[MO_RGBACOLOR(255, 235, 255, 0.1) CGColor]]; //<--"unexpected @ in program error" 

self.gradientLayer2.colors = @[(id)[MO_RGBACOLOR(205, 205, 205, 0) CGColor], (id)[MO_RGBACOLOR(235, 215, 215, 0.2) CGColor]]; //<--"unexpected @ in program error" 

修改

#import "MOGlassButton.h"

// Courtesy of https://github.com/facebook/three20
#ifndef MO_RGBCOLOR
#define MO_RGBCOLOR(r,g,b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
#endif
#ifndef MO_RGBCOLOR1
#define MO_RGBCOLOR1(c) [UIColor colorWithRed:c/255.0 green:c/255.0 blue:c/255.0 alpha:1]
#endif
#ifndef MO_RGBACOLOR
#define MO_RGBACOLOR(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
#endif

1 个答案:

答案 0 :(得分:1)

您的问题可能是您正在运行的Xcode的过时版本。您的代码使用自Xcode 4.4以来支持的Objective-C文字(@[…]部分),因此在早期版本中无效。 (见What are the details of "Objective-C Literals" mentioned in the Xcode 4.4 release notes?

升级应解决您的问题。

修改

或者,虽然我强烈建议您更新,但您可以使用以下内容。

[NSArray arrayWithObjects: (id)[MO_RGBACOLOR(255, 255, 255, 0.45) CGColor], (id)[MO_RGBACOLOR(255, 235, 255, 0.1) CGColor], nil];