2017-04-20 22 views
0

私はUISliderを作成しました。これは、最小トラックと最大トラックの異なるカスタムイメージを持っています。UISliderカスタムトラックイメージが正しく設定されていません

これはUISlider

の通常の状態であるが、私が摺動するときUISlider第2の画像が壊れています。 正しく設定されていません。

誰いただきましたそれと間違って教えてもらえますか?

HERESに私のコード:

slider = [[UISlider alloc] initWithFrame:CGRectMake(24, 24, [VTUIKit screenWidth] - 48, 10)]; 
    slider.tintColor = kVTColorTurquoise500; 
    [slider setBackgroundColor:[UIColor clearColor]]; 
    numbers = @[@(0.5), @(1), @(2.5), @(5), @(10), @(25), @(50), @(100), @(200), @(500), @(999)]; 
    NSInteger numberOfSteps = ((float)[numbers count] - 1); 

    slider.maximumValue = numberOfSteps; 
    slider.minimumValue = 0; 
    slider.continuous = YES; 

    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"Map-Range-Active"] 
           stretchableImageWithLeftCapWidth:5 topCapHeight:0.0]; 
    UIImage *stetchRightTrack = [[UIImage imageNamed:@"Map-Range"] 
           stretchableImageWithLeftCapWidth:5 topCapHeight:0.0]; 
    [slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal]; 
    [slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal]; 

    [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; 
    [self.bottomContainerView addSubview:slider]; 

任意の助けもいただければ幸いです。 ありがとうございます。

+0

ありがとうございました。 –

答えて

0

私は自分の答えを得たので、多くの試行錯誤の後、多くの回答を参照してください。

UIImage * stetchLeftTrack = [[UIImage imageNamed:@"leftImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 
UIImage * stetchRightTrack = [[UIImage imageNamed:@"rightImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 

に従ってくださいしかし、ここでキャッチ画像の両方が、スライダーと同じサイズ(幅)を強要しなければならないこと、であるよう は私のような類似した UISliderを持っているために、私は、最小と最大のトラックの画像を設定する必要がありました。

だから、私はどのように私の問題を取り除いています。

関連する問題