2011-06-23 55 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