2

setMinimumTrackImageとsetMaximumTrackImageが設定されたUISLiderがあります。両方の画像の解像度は同じです。スライダーを動かすと...画像が正しく表示されません。スライダーコントロールの親指をドラッグしているとき、それらは動いています。使ってみました

UIImage * sliderBarImage1 = [UIImage imageNamed:@"slider_b"];
UIImage * sliderBarImage2 = [UIImage imageNamed:@"slider_w"];

sliderBarImage1 = [sliderBarImage1 stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
sliderBarImage2 = [sliderBarImage2 stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

[self.slider setMinimumTrackImage:sliderBarImage1 forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:sliderBarImage2 forState:UIControlStateNormal];

StretchableImageWithLeftCapWidthの有無にかかわらず、正しくありません。また、携帯電話を回転させると、トラック上の画像が正しく拡大縮小されないため、画像内の情報がシフトします。この投稿の画像に似ています:UISliderに画像を配置する方法は?。スライダーを動かすと、画像が動き始め、最小トラックと最大トラックで色が重ならないため、見苦しい効果があります。

4

1 に答える 1

5

イメージの変更を引き延ばさないようにする

UIImage * sliderBarImage1 = [UIImage imageNamed:@"slider_b"];
UIImage * sliderBarImage2 = [UIImage imageNamed:@"slider_w"];

の中へ

UIImage * sliderBarImage1 = [[UIImage imageNamed:@"slider_b"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage * sliderBarImage2 = [[UIImage imageNamed:@"slider_w"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
于 2012-09-21T13:23:34.130 に答える