2

カスタム グラフィックスを使用して UISlider を作成しようとしていますが、直面している問題は、スライダーの塗りつぶし値の高さがスライダーのベース値よりも大きいことです。これについては、スクリーンショットを参照してください。

ここに画像の説明を入力

そして、それがどのように見えるかは、下の図のようになります。

ここに画像の説明を入力

私が使用しているコードを以下に貼り付けます。

[slider setThumbImage:[UIImage imageNamed:@"VolKnob"] forState:UIControlStateNormal];
[slider setMaximumTrackImage:[UIImage imageNamed:@"VolBase"] forState:UIControlStateNormal];
[slider setMinimumTrackImage:[UIImage imageNamed:@"VolFill"] forState:UIControlStateNormal];
4

1 に答える 1

1

両方の画像を同じ高さにする必要があります。おそらく、ベースまたは塗りつぶしの値に透明度を追加して、小さく/大きく見えるようにすることができます。CapInset を使用して、適切な値を決定することもできます。関数 resizableImageWithCapInsets:UIEdgeInsetsMake について調査します。

UIImage* minTrack = [UIImage imageNamed:@"VolFill"];
minTrack = [minTrack resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
[slider setMinimumTrackImage:minTrack forState:UIControlStateNormal];

幸運を。

于 2013-07-18T16:44:44.033 に答える