2011-06-23 71 views

回答

22

是的,您可以在应用程序中使用颜色选择器的开放源代码。这里是一个http://www.fabiancanas.com/entry/iphone-color-picker

+1

我刚刚花早晨评估所有的IOS颜色选择器,这似乎是最好和最简单的。它不是ARC,但很容易转换。 – Nestor

+3

它已经很久以前转换为ARC,已添加文档,并且可通过CocoaPods使用,以增加便利性。 https://github.com/fcanas/ios-color-picker – Fabian

+0

@Fabian感谢您的评论 –

1

这里another article我发现这是很容易理解,你可以自定义成你需要,通过简单的改变。

17

这里是一个color-picker具有以下特点:

  • 显示了简单的彩色调色板(简化的简单情况),色调栅或者HSL选择器。
  • iPhone 5准备就绪 - 颜色托盘扩大以填充更大的屏幕。
  • 色调网格 - 原色的更多变体。可以轻敲底部的彩色线以选择颜色,或者可以左右滑动网格。
  • HSL选择器 - 用于细粒度颜色选择,呈现色调圆和单独的饱和度和亮度控制。
  • Alpha选择器
  • 允许用户保存自己喜欢的颜色。收藏夹存储在Documents目录中的文件中。
  • 简单的代表模型。
  • 您可以指定标题的当前颜色选择和标题。

截图: enter image description here enter image description here enter image description here

+0

有点晚了,但看起来最好的一堆给我。 – stephenmuss

+0

景观支持? – jjxtra

+0

这个选择器的一个主要问题是,它不会自动根据它的视图自动调整大小。它被硬编码为3.5英寸和4英寸的屏幕尺寸。 – jjxtra

1

继kabram的回答以上,并回答PsychoDad的问题,原来Neovera Color Pickerthere is now a fork这增加了支持:在iPhone上

  • 风景模式
  • iPad(in popover)
  • 动画保存最喜欢的颜色,当
  • 使用UINavigationController的推意见
+0

如何在iPad上使用popover?即时获得全屏视图! – MQoder

0

我想我会把我的颜色选择器扔进戒指。我在我的应用程序You Doodle中使用它,我花了几个星期的时间在应用程序中进行测试。它包含一个示例项目,向您展示如何开始使用它,并根据MIT许可证开源。它支持任何设备(iOS 6+),任何分辨率和纵向和横向。通过色调,颜色轮和导入纹理,以及删除和移动收藏夹到前端,可以支持收藏夹,最近点,最近点。

我试着将所有其他颜色选择器的优点组合起来,并确保MIT许可证允许无障碍地集成到任何项目中。

Github上:https://github.com/jjxtra/DRColorPicker

截图:

DRColorPicker iPhone DRColorPicker iPad DRColorPicker iPhone DRColorPicker iPad DRColorPicker iPhone DRColorPicker iPad

2

我的完整答案是here。如果你不想使用自己的代码,而不是第三方库,你可以这样做以下:

使自己的颜色选择器

添加UIView,一个UIImageViewUISlider到故事板。

enter image description here

使用此图像为的UIImageView:

enter image description here

设置最小值和最大值为UISlider至0.5和13.5。

将UI元素连接到View Controller并使用以下代码将滑块位置转换为颜色。

class ViewController: UIViewController { 

    // RRGGBB hex colors in the same order as the image 
    let colorArray = [ 0x000000, 0xfe0000, 0xff7900, 0xffb900, 0xffde00, 0xfcff00, 0xd2ff00, 0x05c000, 0x00c0a7, 0x0600ff, 0x6700bf, 0x9500c0, 0xbf0199, 0xffffff ] 

    @IBOutlet weak var selectedColorView: UIView! 
    @IBOutlet weak var slider: UISlider! 
    @IBAction func sliderChanged(sender: AnyObject) { 
     selectedColorView.backgroundColor = uiColorFromHex(colorArray[Int(slider.value)]) 
    } 

    func uiColorFromHex(rgbValue: Int) -> UIColor { 

     let red = CGFloat((rgbValue & 0xFF0000) >> 16)/0xFF 
     let green = CGFloat((rgbValue & 0x00FF00) >> 8)/0xFF 
     let blue = CGFloat(rgbValue & 0x0000FF)/0xFF 
     let alpha = CGFloat(1.0) 

     return UIColor(red: red, green: green, blue: blue, alpha: alpha) 
    } 
} 

enter image description here

或者通过定位在图像的顶部的滑块和设置轨道色调以清除:

enter image description here