如何创建颜色选择器

时间:2013-11-26 18:52:16

标签: ios colors color-picker

我正在使用Xcode来制作我的第一个应用程序。我想为我的文字添加RGB颜色选择器,所以我可以使用颜色选择器更改文本的颜色。我该怎么办?

感谢您的时间! :)

2 个答案:

答案 0 :(得分:1)

看看GitHub。你会在那里找到无数的颜色选择器回购。这是我在搜索时找到的第一个:

https://github.com/RSully/RSColorPicker

如果您不熟悉编程,您应该坚持使用内置的UI组件。您可以使用两个UIButtons让用户在“红色”和“黑色”之间进行选择,并直接从按钮操作中设置文本颜色。

我认为一个完整的颜色选择器是你的第一个应用程序的一个大项目。

一个天真的实现可以简单地创建一些循环通过可能颜色的颜色井。

UIView subclass with colour wells

以下ColorPickerView是一个UIView子类,用于说明这一点。

#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 :(得分:-4)

不可能教你如何制作颜色选择器。您应该学习Objective C并且可能会看到一些现有的开源项目,它们可以帮助您学习如何创建自己的项目(如果您不想使用和编辑现有项目)... 看看这些Color Pickers