我認爲選項2和3是一個拉伸。你可以做的是有一個方法,當滑塊值被改變時被調用,如果用戶超出了它們在軌道上允許的值,它將其設置爲最大值:
用一些東西聲明你的滑塊實例與此類似(主位爲添加目標)
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectZero];
slider.continuous = TRUE;
slider.minimumValue = MIN_VALUE; // some min value constant or something?
slider.maximumValue = SLIDER_MAX_VALUE; // some max value constant for the entire slider
slider.value = MIN_VALUE; // or anything else you want
[slider addTarget:self action:@selector(checkBeyondTrack:) forControlEvents:UIControlEventValueChanged];
[self.contentView addSubview:slider];
現在,您需要在同一類的checkBeyondTrack方法,在這裏你定義的滑塊
- (void)checkBeyondTrack:(id)sender {
UISlider *slider = sender;
// if we've attempted to go beyond the value allowed
if (slider.value > MAX_TRACK) {
[slider setValue:MAX_TRACK animated:YES];
}
}
每次滑塊的值由用戶改變,滑塊ta將調用rget方法checkBeyondTrack:
執行檢查並根據需要重置該值。