編輯:兩年後,這篇文章仍然得到一些業力和意見。修復了一個更好的答案。
爲UIColor添加一個可以輸入0到255之間的函數的最明智和可重用的方法是創建一個自定義類別。更容易閱讀,更容易調試,更容易讓其他人做出貢獻,並且保持項目的清潔和結構,因爲它不僅僅是視圖控制器。因此,添加下列文件,將它們導入您的M文件等。無論您需要他們
的UIColor + Extra.h
@interface UIColor (Extra)
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
+ (UIColor *) randomColor;
+ (UIColor *) colorWithHex:(uint) hex;
@end
的UIColor + Extra.m
#import "UIColor+Extra.h"
@implementation UIColor (Extra)
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
{
return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f];
}
+ (UIColor *) randomColor
{
CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX;
return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}
+ (UIColor *) colorWithHex:(uint) hex
{
int red, green, blue, alpha;
blue = hex & 0x000000FF;
green = ((hex & 0x0000FF00) >> 8);
red = ((hex & 0x00FF0000) >> 16);
alpha = ((hex & 0xFF000000) >> 24);
return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f];
}
@end
非常感謝。當我能夠接受這個答案時。 – OscarTheGrouch 2012-02-18 13:45:40
您可能會添加一些解釋,而不僅僅是一個未格式化的代碼示例 – jrturton 2012-02-18 13:46:20
UIColor僅接受0到1的屬性 – OscarTheGrouch 2012-02-18 13:58:31