試試這個。我在我的項目中使用這個
Slider.h
@class Slider;
@protocol SliderDelegate <NSObject>
@required
- (void) slideEnd;
@end
@interface Slider : UISlider
@property (nonatomic, weak) id<SliderDelegate> delegate;
Slider.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setMinimumTrackImage:YOUR_MINIMUM_TRACK_IMG forState:UIControlStateNormal];
[self setMaximumTrackImage:YOUR_MAXIMUM_TRACK_IMG forState:UIControlStateNormal];
[self setThumbImage:YOUR_THUMB_IMAGE];
self.minimumValue = 0.0;
self.maximumValue = 1.0;
self.value = 0.0;
[self addTarget:self action:@selector(moved:) forControlEvents:UIControlEventTouchUpInside];
[self addTarget:self action:@selector(moved:) forControlEvents:UIControlEventTouchUpOutside];
}
return self;
}
- (void) moved:(UISlider *) sender
{
if (self.value != 1.0) {
[self setValue: 0 animated: YES];
} else {
[[self delegate] slideEnd];
[self setValue: 0 animated: YES];
}
}
這樣實現:
[self setSlider:[[Slider alloc] initWithFrame:CGRectMake(645, 25, 120, 50)]];
[[self view] addSubview:[self slider]];
[[self view] bringSubviewToFront:[self slider]];
[[self slider] setDelegate:self];
不要忘記執行委託方法:
- (void)slideEnd {
// Things you want to do when slide ends
}
yes of course of can be done。 UISlider繼承自UIControl類。您可以繼承UIControl並開始製作您的自定義滑塊。 –
請參閱:http://www.sitepoint.com/wicked-ios-range-slider-part-one/ 在這裏你可以看到如何創建一個雙向滑塊,但你可以學習很多東西並實現你的習慣通過它後滑塊。 –
這裏是一個不錯的答案:-http://stackoverflow.com/questions/8287413/custom-uislider-avoid-updating-when-dragging-outside –