6

値を割り当てて atextColorのを設定しようとしています。UITextView

私が持っているプログラムの早い段階で

textView.textColor = 0x000000;

しかし後で、私が持っているとき

textView.textColor = 0x888888;

「'int' から 'UIColor *' への暗黙的な変換は、ARC では許可されていません」という致命的なエラーがポップアップ表示されます。

int を UIColor に変換してテキストの色を適切に設定するにはどうすればよいですか? 0x888888 ではなく 0x000000 で機能したのはなぜですか?

4

6 に答える 6

11

迅速なバージョン

次の関数を使用して、RGB 16 進数の色IntUIColor.

func uiColorFromHex(rgbValue: Int) -> UIColor {
    
    // &  binary AND operator to zero out other color values
    // >>  bitwise right shift operator
    // Divide by 0xFF because UIColor takes CGFloats between 0.0 and 1.0
    
    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)
}

そして、このように使用できます

let myColorValue = 0x888888
let color = uiColorFromHex(myColorValue)
于 2015-09-11T08:16:06.310 に答える
0

UIColorFromRGB()UIColor に変換するために使用できることがわかりました。

例えば

textView.textColor = UIColorFromRGB(0x888888);
于 2013-10-16T13:56:29.773 に答える