iOS中的颜色轮或颜色选择器

14

我如何在iPad上制作类似于颜色轮、颜色选择器或色调选择器的东西?

这是一个与我想要的类似的颜色选择器的示例图片。

enter image description here

@所有人,提前感谢。


3
这并不是一个真正的色彩“轮”。 - Luke
那对我来说毫无意义。什么是HUE? - Luke
它会给我所有0到255种不同的颜色,这样我就可以从图像中选择我需要的颜色,并且它会给我从最小级别到最大级别的颜色饱和度,并且给我所选颜色的预览。与我们选择颜色的颜色轮相关,其格式不同,是通过Hue RGB组合来选择颜色的。 - user891268
在这里找到了另一篇相当简单的文章,包括示例代码:链接 - Dave
刚刚发布了今天的项目 - http://code.google.com/p/ios-color-wheel/ - Justin Meiners
显示剩余3条评论
7个回答

10

这篇文章可能会对你有所帮助。一个简单的选色方式是获取你提供的图片中某个像素的颜色。这个 Github 项目还提供了完整的颜色选择器源代码。


现在它甚至无法编译。_RotatableBitmapRep的符号无效。 - mskw
@mskw 对不起,这是几年前的事了。 - Luke
链接已过期。 - Awais Fayyaz

7

4

其他答案没有任何问题,我只是想分享另一个使用Swift创建的颜色选择器

swift-colorwheel


3
我想分享我的颜色选择器。我在我的应用程序You Doodle中使用它,并花了几周的时间制作和测试它。它包含一个示例项目,以向您展示如何开始使用它,并在MIT许可证下进行了开源。它支持任何设备(iOS 6+),任何分辨率以及纵向和横向排列。支持收藏夹、最近使用、按色调颜色选择、色轮和导入纹理,以及删除和将收藏夹移动到前面。
我试图结合其他所有颜色选择器的好处,并确保MIT许可证允许无麻烦地集成到任何项目中。 Github: https://github.com/jjxtra/DRColorPicker 截图: DRColorPicker iPhone DRColorPicker iPad DRColorPicker iPhone DRColorPicker iPad DRColorPicker iPhone DRColorPicker iPad

3
我知道这个问题已经被回答并接受了,但是在这里提到的所有github项目都看起来已经过时和废弃。我发现RSColorPicker很容易使用,并且具有我正在寻找的所有功能。最重要的是它没有过时。

3
如果你的应用程序目标是 iOS 14,那么你就不需要第三方代码。它有UIColorPickerViewController,而且非常简单明了。
let picker = UIColorPickerViewController()
picker.delegate = self
present(picker, animated: true, completion: nil)

您可以设置初始选定颜色,或将 supportsAlpha 设置为 false 以隐藏 alpha 滑块并仅允许不透明颜色。

UIColorPickerViewController


1

我在draw(_ rect: CGRect)中创建了一个彩色轮的扇形。点击这里查看。

那是我的彩色轮: 彩色轮的扇形

这个视图基于以下代码行:

override func draw(_ rect: CGRect) {
    guard let context = UIGraphicsGetCurrentContext() else {
        return
    }

    // Choice width and x position of a rect where will be placed you picker
    for x in stride(from: bounds.midX - bounds.height, to: bounds.midX + bounds.height, by: elementSize) {

        // Choice height and y position of the rect
        for y in stride(from: 0, to: rect.height, by: elementSize) {

            // Select color for a point
            context.setFillColor(colorFor(x: x, y: y))

            // Select color for the point with elementSize which we declare and init as class property
            context.fill(CGRect(x: x, y: y, width: elementSize, height: elementSize))
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接