0
[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateHighlighted];
[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateNormal     ];

スライダーバーの画像が消えますか? 私のものはすべてなくなりました。(サムネイル画像は問題なく表示されます。)

Appleのドキュメントによると、上記の2行のコードのいずれかを使用できるようです。(しかし、私は本当に両方が必要だと思います。)

そして、「常に4つすべてを行う必要があります」については何も見つかりません。

Set the normal-state image.
Set the highlighted-state image.
Set the setMinimumTrackImage.
Set the setMaximumTrackImage.
4

1 に答える 1

1

UISlider をグラフィックでカスタマイズする場合は、少なくとも 3 つのグラフィックを設定する必要があります。トラックバーの右側と左側、およびサム イメージ:

前回UISliderを使用したときの方法は次のとおりです。

    CGRect frame = CGRectMake(20.0f, 6.0, 280.0f, 20.0f);
    UISlider *customSlider = [[UISlider alloc] initWithFrame:frame];
    [customSlider addTarget:self action:@selector(sliderMove:) forControlEvents:UIControlEventValueChanged];
    [customSlider addTarget:self action:@selector(sliderStart:) forControlEvents:UIControlEventTouchDown];
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpInside];        
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpOutside];   

    // in case the parent view draws with a custom color or gradient, use a transparent color
    customSlider.backgroundColor = [UIColor clearColor];    
    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider.png"]
                                stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

     UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_right.png"]
                                stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

    [customSlider setThumbImage: [UIImage imageNamed:@"slider-knop.png"] forState:UIControlStateNormal];
    [customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
    [customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];

UISlider の強調表示された状態やその他の状態を持つことは意味がありません。指が親指の画像を覆う可能性が高いため、ユーザーには表示されません。UIButton から拡張しただけで、おそらくそれを処理できないかどうかはわかりませんか?

于 2010-06-14T17:23:25.160 に答える