2011-01-13 14 views
10

0.5に設定すると、UISliderビューでアルファ表示が無視されるのはなぜですか?UISliderは0.5に設定するとアルファを無視します

コード:

for (int i = 0; i < 3; i++) { 
    UISlider *slider = [[[UISlider alloc] 
         initWithFrame:CGRectMake(0, i * 30, 200, 30)] 
         autorelease]; 
    slider.alpha = 0.4 + (CGFloat)i/10.0f; 
    [window addSubview:slider]; 
} 

結果:

Example screenshot

スライダーアルファ0.4、0.5及び0.6値を有します。そして、あなたが見ることができるように0.5の完全なものは完全に不透明です。それは、アルファ0.5でしか発生しません。他のUIコントローラをテストしましたが、アルファが0.5に設定されていると期待どおりに動作します。

実際のデバイスではiOS 4.2、シミュレータではiOS 3.2と4.2で再現されました。

私がこの問題にぶつかった理由と理由を知りたければ、それはSlippyと呼ばれるパズルゲームのスライド方向パッドの設定です。

+4

数分かけて自分で遊んだり、バグのように見えます。アップルにバグレポートを提出することをお勧めします - http://developer.apple.com/bugreporter/ – Eric

+0

今、アップルに報告しました。もっと知っていると更新されます。 –

+0

appleからの返信はまだありません –

答えて

1

あなたは他のUIコントローラは、彼らがUIViewクラスからalpha propertyを継承し、( "あなたは常に、このプロパティの値を設定する必要がありopaque propertyへの参照があるので、UISliderとは差があってはならない、0.5アルファで動作することを言ったようにビューが完全にまたは部分的に透過的であればいいえ」)。たぶんあなたはアドバイスに従うことを試みることができます。

0.5値のバグが本当にあるとすれば、あなたは、単に目に見える違いO/W 0.4から0.41/0.39に、あなたの開始透明度を変更することができます。

slider.alpha = 0.41f + (CGFloat)i/10.0f; 

最後に、あなたが出力結果のalpha値にすることができますがいくつかのラベルが期待されているかどうかをチェックしたり、タイプキャストに何か問題があるかどうかを確認するために(CGFloat)iの値を出力します。

+0

slider.opaque = NOは、継ぎ目がついていません。また、NSLog(@ "%f"、slider.alpha)でアルファ値を記録し、0.4,0.5、および0.6を出力します。このバグに遭遇するアプリケーションでは、スライダが1つしかないので、ループは問題を説明するだけのものでした。提案していただきありがとうございます。 –

関連する問題