學習筆記----UISlider

關于UISlider的簡介就不多說了主要記錄一下它的各種屬性用法:

-(void)setProgressView{
    UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(20, 200, 300, 10)];
    backView.backgroundColor = [UIColor clearColor];
    [self.view addSubview:backView];
    self.backView = backView;
    
    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 300, 10)];
    UIImage *image5 = [UIImage imageNamed:@"player_slider_playback_thumb"];
    //設置slider圓形滾動的顏色
    slider.thumbTintColor = [UIColor purpleColor];
    //設置slider右邊的顏色
    slider.maximumTrackTintColor = [UIColor redColor];
    //設置slider左邊的顏色
    slider.minimumTrackTintColor = [UIColor orangeColor];
//    設置slider圓形滾動部分的背景圖片
    [slider setThumbImage:[self OriginImage:image5 scaleToSize:CGSizeMake(20, 20)] forState:UIControlStateNormal];
    //設置slider右邊部分的背景圖片
    [slider setMaximumTrackImage:[UIImage imageNamed:@"63acf19b71ca34fa00d16a1761ee62e4"] forState:UIControlStateNormal];
    //設置slider左邊部分的背景圖片
    [slider setMinimumTrackImage:[UIImage imageNamed:@"6b81ebdb865c1cb4122a6237d6964865"] forState:UIControlStateNormal];
    
    [slider addTarget:self action:@selector(slickChange:) forControlEvents:UIControlEventValueChanged];
    //默認為yes,設置為NO的時候,滑動結束的時候slickChange方法才會被調用。
    slider.continuous = NO;
    [backView addSubview:slider];
    //添加手勢,用于點擊slider的時候滑動到指定位置
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
    [slider addGestureRecognizer:tap];
    self.slider = slider;
    
    
    NSLog(@"%f",slider.currentThumbImage.size.width);
    UIImageView *button  = [[UIImageView alloc] initWithFrame:CGRectMake(60, 0, 10, 10)];
    button.backgroundColor = [UIColor clearColor];
    button.image = [UIImage imageNamed:@"player_slider_playback_thumb"];
    [self.backView addSubview:button];
    self.button = button;
    
    UIView *lineview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 0.5)];
    lineview.backgroundColor = [UIColor purpleColor];
    lineview.center = backView.center;
    [backView addSubview:lineview];
    
    UIButton *playButton = [[UIButton alloc] initWithFrame:CGRectMake(20, 300, 100, 40)];
    playButton.backgroundColor = [UIColor redColor];
    [playButton addTarget:self action:@selector(playClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:playButton];
}

手勢方法:


-(void)tap:(UIGestureRecognizer*)tap{
    //當前手勢點擊點在slider上的位置
    CGPoint currentPoint = [tap locationInView:self.slider];
    //計算出需要滑動的比例值
    float value = currentPoint.x/self.backView.bounds.size.width;
    self.slider.value = value;
}

滑動事件響應方法:

-(void)slickChange:(UISlider*)slider{
    //計算出指定路徑上的button在slider的范圍
    CGFloat min = 42/300.0;
    CGFloat max = 75/300.0;
    //slider滑動到這個區間時將slider設置到最前面
    if (min<slider.value&& slider.value<max) {
        [self.backView bringSubviewToFront:self.slider];
    }else{
        [self.backView sendSubviewToBack:self.slider];
    }
}

改變slider上圓形滑動塊大小的一種辦法(UITableviewcell上自帶imageview大小也可以使用這個代碼)

-(UIImage*) OriginImage:(UIImage*)image scaleToSize:(CGSize)size
{
    UIGraphicsBeginImageContext(size);//size為CGSize類型,即你所需要的圖片尺寸
    [image drawInRect:CGRectMake(0,0, size.width, size.height)];
    UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

滑動到第一個小的分區上的圖片:


屏幕快照 2017-05-31 上午9.50.06.png

滑過以后的圖片:


屏幕快照 2017-05-31 上午9.49.51.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容