1

最小トラックと最大トラックのイメージをどのように設定できるか、およびそれをどのように伸縮可能にするかを理解しています。ただし、私のニーズでは、それでは十分な制御ができない可能性があります。

データに基づいて、左側 (最小トラック) に 2 つの異なる色を表示する必要がある状況があります。左側は実際には 2 つのデータを表していますが、最小値と最大値の間には 1 つのつまみしかありません。

どうすればこれを行うことができますか?

サンプルコード??

私は実際にこのようにしたいです

写真リンク

左側はグリニッシュカラーですが、親指のイメージを超えると赤くなります。

4

3 に答える 3

8

.h ファイル内

IBOutlet UISlider *slide;

あなたの.mファイルで

UIImage *minImage = [UIImage imageNamed:@"unselected.png"];
    UIImage *maxImage = [UIImage imageNamed:@"selected.png"];
    UIImage *tumbImage= [UIImage imageNamed:@"thumb.png"];
    minImage=[minImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    maxImage=[maxImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    [slide setMinimumTrackImage:minImage forState:UIControlStateNormal];

unselected.png と selected.png は、バーの上をスライドするバーとthumb.png として機能する画像です。

于 2011-05-27T09:40:17.970 に答える
3

画像スワッピングコードをスライダーの値の読み取り方法に配置します。これは通常、次のようになります。

-(IBAction)sliderChanged:(id)sender; {}

スライダーの値が事前定義された値に達するたびに、カスタムの緑の画像をカスタムの赤の画像と交換します。以下の例を参照してください。

// Switches the -thumbImage between an ivar named highImage and lowImage 
// when the slider passes the halfway point  

if (sliderValue > 0.5) {
    [self updateSliderThumbWithImage:self.highImage];
} else {
    [self updateSliderThumbWithImage:self.lowImage];
}

次のようにスライダー画像の更新方法を定義します。

-(void)updateSliderThumbWithImage:(UIImage *)image;
{
    [self.slider setThumbImage:image forState:UIControlStateNormal];
    [self.slider setThumbImage:image forState:UIControlStateHighlighted];
}

// You have to set thumb images for both states  
// or your image will vanish when user slides it. 
// Not sure if you have to do the same with the track image, though.  

これが誰かに役立つことを願っています。

于 2009-11-11T11:03:17.623 に答える
0

必要なものを視覚化できるかどうかはわかりませんが (スケッチを投稿できる可能性はありますか?)、UISlider を検索すると、かなりクリエイティブな使い方がいくつか見つかります。それ以外の場合は、独自のカスタム UIControl を作成できます。


(ソース: texlege.com )

于 2009-09-22T23:39:44.800 に答える