web-dev-qa-db-ja.com

グラフィックス、予想される範囲外のコンポーネント値で作成されたUIColor

Xcode 8と画像のあるフォルダーを入手しました。 Photoshop、Pixalateのすべての画像を特定のフィルターに置き換えました。

プロジェクトを実行すると、エラーが発生します。

[グラフィックス]予想される範囲外のコンポーネント値で作成されたUIColor。デバッグするUIColorBreakForOutOfRangeColorComponentsにブレークポイントを設定します。このメッセージは一度だけ記録されます。

どうすれば解決できますか?

29
Done

どこかにこのようなものがあるかもしれません:

UIColor(red: 255, green: 255, blue: 255, alpha: 1.0)

今このように変更する必要があります:

UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
SO : UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0)
49

警告情報で述べたように、予想される範囲外の値を設定するだけです。 APIリファレンスによると、UIColorジェネレーターに渡されるすべてのパラメーターは、0.0〜1.0の間である必要があります。

以下の手順に従って、この警告を引き起こすコードを見つけることができます。

ステップ1:ブレークポイントナビゲータにシンボリックブレークポイントを追加します add a Symbolic Breakpoint

ステップ2:シンボリックブレークポイントのシンボルをUIColorBreakForOutOfRangeColorComponentsに設定しますset the symbol of the Symbolic Breakpoint

ステップ3:アプリを実行してコールスタックを取得する

ステップ3のコールスタックに従ってください。キーコードの結果が警告に表示されます。

46
roby

簡単な答え:RGB値は0から1になります。おそらくストレート番号を入力したでしょう。各値を255で割ります。

長い答え:このエラーが出ました。 RGBで色を調べました。これは私のコードでした。

view.backgroundColor = UIColor(red: 125, green: 125, blue: 125, alpha: 1)

シンボリックブレークポイントトリックを使用して、ブレークしている行を見つけましたが、それを修正する方法がわかりませんでした。

次に、別の答えを見て、RGB値の範囲が0〜1であることを思い出しました。与えられる数字は常に 255で割られる です。

コードをこれに変更しました:

view.backgroundColor = UIColor(red: 125/255, green: 125/255, blue: 125/255, alpha: 1)そしてそれは素晴らしく機能しました。

7
Joshua Dance

これを試してください。それは私のためにうまくいった

UIColor(red: <Your color>/255.0, green: <Your color>/255.0, blue: <Your color>/255.0, alpha: 1.0)
6
Syngmaster