iOS 控件之 UISlider

本文探讨了iOS中的UISlider控件,它作为UIControl的子类,提供了一个可滑动的进度条。与UIProgressView不同,UISlider能够响应用户的触摸事件。通过分析示例代码,总结了UISlider的主要使用方法和可定制的四个关键方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UISlider继承UIControl,是一个可以在最小值和最大值之间任意滑动的进度条,和UIProgressView的区别在于:前前者无法响应用户的触摸事件,而后者可以。

我下了一个demo,相信的总结了一下UISlider 的使用方法

//
//  ViewController.m
//  UIProgressViewDemo
//
//  Created by 冷凝 on 14-2-19.
//  Copyright (c) 2014年 **. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
{
   // UIProgressView * _progressView;
    UISlider * _slider;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self addSlider];
    //[self addProgressView];
}

-(void)addSlider{
    _slider = [[UISlider alloc]initWithFrame:CGRectMake(10, 10, 300, 50)];
    _slider.minimumValue = 0;
    _slider.maximumValue = 100;
    _slider.value = 50;
    _slider.minimumValueImage = [UIImage imageNamed:@"meigui.png"];
    _slider.maximumValueImage = [UIImage imageNamed:@"yongbao.png"];
    _slider.minimumTrackTintColor = [UIColor blackColor];
    //_slider.maximumTrackTintColor = [UIColor greenColor];
    _slider.thumbTintColor = [UIColor orangeColor];
    [_slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
    [_slider setThumbImage:[UIImage imageNamed:@"daku.png"] forState:UIControlStateNormal];//设置默认图片
    [_slider setThumbImage:[UIImage imageNamed:@"chouyan.png"] forState:UIControlStateHighlighted];//设置移动时显示进度的图片

    [self.view addSubview:_slider];
}

//根据值的变化来做判断
-(void)sliderValueChanged:(UISlider*)slider{
    if (slider.value <= slider.maximumValue/2.0) {
        slider.minimumTrackTintColor = [UIColor blackColor];
        
    }else{
        [slider setValue:90 animated:YES];
        slider.minimumTrackTintColor = [UIColor redColor];
        slider.maximumTrackTintColor = [UIColor blackColor];
    }
}


为了供子类定制还提供了四个方法:看到函数名就知道函数的功能

// lets a subclass lay out the track and thumb as needed
- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;
- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;
- (CGRect)trackRectForBounds:(CGRect)bounds;
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值