2013-11-26 95 views
-2

我使用Xcode來製作我的第一個應用程序。我想爲我的文本添加RGB顏色選擇器,因此我可以使用顏色選擇器更改文本的顏色。我該怎麼做?如何創建顏色選擇器

謝謝你的時間! :)

回答

1

看看GitHub。你會發現gazillion顏色選擇器在那裏。這是第一個,我發現搜索時:

https://github.com/RSully/RSColorPicker

如果你是編程新手,你應該或許與內置的UI組件堅持。您可以使用兩個UIButton來讓用戶在「紅色」和「黑色」之間選擇,並直接從按鈕操作中設置文本顏色。

我認爲一個完整的顏色選擇器是您的第一個應用程序的大項目。

一個簡單的實現可以簡單地創建一個循環遍歷可能的顏色的顏色井。

UIView subclass with colour wells

的下面ColorPickerViewUIView子類,它示出了這一點。

#import "ColorPickerView.h" 

@implementation ColorPickerView 

- (void)drawRect:(CGRect)rect { 

    // Create a grid of n*n wells each with a seperate color -- 
    const int numberOfWells = 20; 
    const int totalWells = numberOfWells * numberOfWells; 

    // Figure out the size of each well -- 
    const CGSize size = self.bounds.size; 
    const CGFloat boxHeight = floorf(size.height/numberOfWells); 
    const CGFloat boxWidth = floorf(size.width/numberOfWells); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 

    // Loop through all the wells -- 
    for(int y = 0; y < numberOfWells; y++) { 
     for(int x = 0; x < numberOfWells; x++) { 

      int wellNumber = x + numberOfWells * y; 

      // Assign each well a color -- 
      UIColor *boxColor = [self colorForWell:wellNumber ofTotal:totalWells]; 
      [boxColor setFill]; 

      CGRect box = CGRectMake(x*boxWidth, y*boxHeight, boxWidth, boxHeight); 
      CGContextAddRect(context, box); 
      CGContextFillRect(context, box); 

     } 
    } 

} 

-(UIColor*) colorForWell:(int) well ofTotal:(int) wells { 

    CGFloat red = (CGFloat) well/wells; 
    CGFloat green = well % (wells/3)/(CGFloat) (wells/3); 
    CGFloat blue = well % (wells/9)/(CGFloat) (wells/9); 

    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0]; 
} 

@end 

讓用戶點擊顏色並從觸摸位置推斷顏色。

+1

謝謝你,你幫了我很多! – Yarondani

-4

教你如何製作顏色選擇器是不可能的。你應該學習Objective C,並且可能會看到一些現有的開源項目,這些項目是你想學習如何製作你自己的(如果你不想使用和編輯現有的)... 看看這些Color Pickers