原理:使用圖更換滑塊。進而修改圖片的大小來修改滑塊的大小,然后給圖添加陰影效果
.m文件
#import "HWSlider.h"
#define kSliderHeight? ?10//slider高
@interface HWSlider ()
/// 是否設(shè)置過layer
@property (nonatomic , readwrite , assign) BOOL didSetLayer;
@end
@implementation HWSlider
- (instancetype)initWithFrame:(CGRect)frame{
? ? if(self= [superinitWithFrame:frame]) {
? ? ? ? [self setThumbImage:[UIImage imageNamed:@"圓"] forState:UIControlStateNormal];//通過直接修改圖片的大小
? ? }
? ? return self;
}
/// 設(shè)置track(滑條)尺寸
- (CGRect)trackRectForBounds:(CGRect)bounds{
? ? returnCGRectMake(0, (bounds.size.height-kSliderHeight) /2.0, bounds.size.width,kSliderHeight);//滑桿高改為10
}
#pragma mark- 布局
- (void)layoutSubviews{
? ? [super layoutSubviews];
? ? if (self.didSetLayer) {
? ? ? ? return;
? ? }
? ? BOOLdidSetLayer =NO;
? ? for(UIView*vinself.subviews) {
? ? ? ? if ([v isKindOfClass:[UIImageView class]] && v.frame.size.height != kSliderHeight) {//給滑塊圖片添加陰影
? ? ? ? ? ? v.layer.shadowColor = [UIColor blackColor].CGColor;
? ? ? ? ? ? v.layer.shadowOffset = CGSizeMake(1, 1);
? ? ? ? ? ? v.layer.shadowOpacity=0.5;
? ? ? ? ? ? didSetLayer =YES;
? ? ? ? }
? ? }
? ? self.didSetLayer= didSetLayer;
}
@end