2014-01-30 36 views
0

當我將滑塊的maximumValue更改爲> 1.0時,我嘗試使用UISlider時出現了一個非常奇怪的問題,我在視圖中出現了這個奇怪的重複滑塊。請幫助:)設置引起奇怪行爲的UISlider的最大值

繼承人它看起來像什麼時slider.maximumValue = 10.0; http://imagizer.imageshack.us/v2/800x600q90/827/kf12.png

繼承人當slider.maximumValue = 1.0;它看起來像什麼。 http://imagizer.imageshack.us/v2/800x600q90/197/bcvf.png

有沒有我失蹤的UISlider的某些行爲?這裏是我的配置滑塊代碼...

-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    CGSize viewSize = self.contentSubview.bounds.size; 

    self.timeSlider.frame = CGRectMake(viewSize.width/2 - 80, 
             viewSize.height/2 - 12, 
             viewSize.width/2, 
             24); 

    -(void)configureSubviews 
    { 
     [super configureSubviews]; 

     self.timeSlider = [[UISlider alloc] initWithFrame:CGRectZero]; 
     self.timeSlider.continuous = YES; 
     self.timeSlider.minimumValue = 0; 
     self.timeSlider.maximumValue = 1.0f; 
     [self.timeSlider addTarget:self action:@selector(timeValueChanged:) forControlEvents:UIControlEventValueChanged]; 
     [self.contentSubview addSubview:self.timeSlider]; 

    } 

    -(void)timeValueChanged:(UISlider *)slider 
    { 
     self.timeValueLabel.text = [NSString stringWithFormat:@"%d min", (int)floorf(slider.value)]; 
     [self layoutSubviews]; 
    } 
+0

使用的UITableView> –

+0

我沒有看到兩個圖像的差異。 – rmaddy

+1

確保您只調用一次configureSubviews – stosha

回答

0

layoutSubviews 進行佈局子視圖。

- (void)layoutSubviews 

討論

此方法的默認實現不執行在iOS 5.1和更早版本罷了。否則,默認實現使用您設置的任何約束來確定任何子視圖的大小和位置。

子類可以根據需要重寫此方法以執行其子視圖的更精確佈局。只有在子視圖的自動調整大小和基於約束的行爲不提供所需行爲的情況下,才應該重寫此方法。您可以使用您的實現直接設置子視圖的框架矩形。

您不應該直接調用此方法。如果您想強制佈局更新,請在下一次更新圖紙之前調用setNeedsLayout方法。如果要立即更新視圖的佈局,請調用layoutIfNeeded方法。

全球化志願服務青年通過apple doc

+0

好的。我不知道我不應該直接調用layoutSubviews。我會按照你的建議修復它。謝謝!! – DBoyer