//滑动条的定义,其实高度可以这样调整

2019-09-17 13:07栏目:大奖888官网登录
TAG:

当然,即使这样可能也无法满足项目需求。比如我,项目不仅要求进度条高度灵活变化而且还要在其上面显示文字。于是便想自己造个轮子XDProgressView,通过CALayer和UIView实现,尽可能的和系统原生的UIProgressView保持一致。

3-->初始化进度条

_slider.minimumTrackTintColor=[UIColor redColor];

UIProgressView是一个并不很常用的UI控件,其属性和方法也很少、简单明了。但是用过的朋友都知道,设置frame时高度并不会发生变化。其实高度可以这样调整:

};

@synthesize pView=_progressView;

完整demo请戳这里XDProgressView......

格式为

我们要实现上面图片的效果,在滑动条滑动改变的同时,进度条也跟随着改变。

部分源码:

@property(nonatomic) UIProgressViewStyle progressViewStyle; // 默认是 UIProgressViewStyleDefault

//进度条的高度是不可以变化的,这里的40是不起任何作用的系统默认

图片 1loadAnimation.gif如果要问我XDProgressView和UIProgressView相比有什么不同?大致区别如下:

myProgressView.progressTintColor = [UIColor orangeColor]; // 已走过的颜色

@synthesize slider=_slider;

接口信息:

@property(nonatomic, strong, nullable) UIImage* trackImage NS_AVAILABLE_IOS UI_APPEARANCE_SELECTOR;

1.self.progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];//这里是设定progressView的模式为默认模式

  1. UIProgressView的下面这两个属性暂时没有去实现,个人觉得可有可无。 @property(nonatomic) UIProgressViewStyle progressViewStyle; @property(nonatomic, strong, nullable) NSProgress *observedProgress 2. XDProgressView可以由你心情任意设置高度,也可在上面显示文字。

@property(nonatomic, strong, nullable) UIColor* progressTintColor NS_AVAILABLE_IOS UI_APPEARANCE_SELECTOR;

_slider = [[UISlider alloc]init];

二者对比效果如下:

- (instancetype)initWithProgressViewStyle:(UIProgressViewStyle)style; //会根据样式设置视图高度。

[super viewDidLoad];

+ layerClass { return [XDProgressLayer class];}- setProgress:progress animated:animated { if (_progress == progress) return; _progress = progress > 1.0 ? 1.0 : progress < 0.0 ? 0.0 : progress; XDProgressLayer *layer = (XDProgressLayer *)self.layer; layer.progress = _progress; [(XDProgressLayer *)self.layer setProgressWithAnimated:animated];}#pragma mark - Property- setProgress:progress { [self setProgress:progress animated:NO];}

UIProgressViewStyleDefault, // normal progress bar

_progressView.frame=CGRectMake(10, 100, 300, 140);

@interface XDProgressView : UIView@property (nonatomic, assign) float progress; // 0.0 .. 1.0, default is 0.0. values outside are pinned.@property (nonatomic, strong, nullable) UIColor *progressTintColor;@property (nonatomic, strong, nullable) UIColor *trackTintColor;@property (nonatomic, strong, nullable) UIImage *progressImage;@property (nonatomic, strong, nullable) UIImage *trackImage;@property (nonatomic, strong, nullable) NSString *text;@property (nonatomic, strong, nullable) UIColor *textColor; // default is white color.@property (nonatomic, strong, nullable) UIFont *font; // default is 17.0.@property (nonatomic, assign) NSTextAlignment textAlignment; // default is left.- setProgress:progress animated:animated;@end

iOS开发从入门到精通-- UIProgressView进度条&UISlider滑动条

//位置设置,高度不可变更,40写的不起作用,系统默认

progressView.transform = CGAffineTransformMakeScale(1.0f, 5.0f);

1-->设置UIProgressView的样式

_progressView.progress=0.3;

@property(nonatomic, strong, nullable) UIColor* trackTintColor NS_AVAILABLE_IOS UI_APPEARANCE_SELECTOR;

_slider.maximumValue=100;

- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;

_slider.minimumValue=0;

进度: NSProgress

//创建滑动条对象

_progressView.progress=0.3;//设置进度条的进度值 ,范围从0~1,最小值为0,最大值为1. 0.8-->进度的80%

UISlider *_slider;

progressView.progressImage = image2; //设置进度图片

//一般用来进行调整音乐的音量等

@property(nonatomic, strong, nullable) NSProgress *observedProgress NS_AVAILABLE_IOS;

//定义一个进度条属性

progressView.progressViewStyle=UIProgressViewStyleDefault;

_slider.thumbTintColor=[UIColor blackColor];

UIProgressViewStyleBar __TVOS_PROHIBITED, // 用于工具条的样式

图片 2

8--> 设置进度

// Dispose of any resources that can be recreated.

1-->初始化UIProgressView并返回一个新的视图对象,根据指定的CGRect

// Do any additional setup after loading the view, typically from a nib.

UIProgressViewStyleBar __TVOS_PROHIBITED, // for use in a toolbar

//设置进度条的风格特征

iOS UIProgressView控件用法

[self.view addSubview:_slider];

@property(nonatomic, strong, nullable) UIImage* progressImage NS_AVAILABLE_IOS UI_APPEARANCE_SELECTOR;

//设定两端弧度

<<UIProgressView控件用来显示进度条描述某个任务的进度

_progressView.progress=(_slider.value-_slider.minimumValue)/(_slider.maximumValue-

UIProgressView * progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; //实例化一个进度条,有两种样式,一种是UIProgressViewStyleBar一种是UIProgressViewStyleDefault,几乎无区别

[_slider addTarget:self action:@selector(pressSlider) forControlEvents:UIControlEventValueChanged];

UIProgressView * progressView =[[UIProgressView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];//设置的高度对进度条的高度没影响,整个高度=进度条的高度,进度条也是个圆角矩形

//0.8-->进度的80%

self.progressView.observedProgress = progress;

//右侧滑条背景颜色

具体参看Objective-c 中如何重写父类的初始化方法

//设置进度条的进度值

typedef NS_ENUM(NSInteger, UIProgressViewStyle) {

#import@interface ViewController : UIViewController{

2-->设置进度条进度

在 ViewController.h里面声明:

二、UIProgressView的属性方法(属性的顺序与苹果API一致)

//对滑动条添加事件函数

progressView.trackImage = image2; //设置进度图片

#import "ViewController.h"

三、UIProgressView的属性

//进度条对象

_myProgressView.trackTintColor = [UIColor whiteColor]; // 为走过的颜色

  1. [self.progressView setProgress:0.70 animated:YES];

UIProgressViewStyleDefault, // 普通样式

//甚至进度条的风格颜色值,默认是蓝色的

3--> 设置已走过进度的进度条颜色

_slider.value=30;

UIProgressView进度条的几个属性介绍

@interface ViewController ()

[progressView setProgress:0.5 animated:YES];

//设置滑动条的最小值,可以为负值

2-->用IB初始UIProgressView

_progressView.progressViewStyle=UIProgressViewStyleDefault;

- setProgress:progress animated:animated NS_AVAILABLE_IOS;

9.self.progressView.layer.masksToBounds = YES;

typedef NS_ENUM(NSInteger, UIProgressViewStyle) {

@property(retain,nonatomic) UISlider * slider;

<<继承关系:UIProgressView --> UIView -->UIResponder-->NSObject

//左侧滑条背景颜色

};(如果属性有枚举类型的话,这里会有枚举类型说明)

5.self.progressView.transform = transform;//设定宽高

7--> 设置进度条进度和是否动画显示(动画显示会平滑过渡)

在ViewController.m里面去实现:

参考:

//一般用来表示下载或视频播放的进度

_progressView.progressViewStyle=UIProgressViewStyleDefault;设置UIProgressView的样式为UIProgressViewStyleDefault

[self.view addSubview:_progressView];

@property(nonatomic) UIProgressViewStyle progressViewStyle; // 设置进度条的风格特征, 默认是UIProgressViewStyleDefault

//滑动条的定义

5-->设置进度条已走过进度的背景图案

}

@property(nonatomic) float progress;//设置进度条进度(0.0-1.0之间,默认为0.0)

2.self.progressView.frame = CGRectMake(16, CGRectGetMaxY(label1.frame) + 15, SCREEN_WIDTH - 32 - image3.size.width - 25, 8);

一、简介

//设置滑动条的滑块位置float值

- (instancetype)initWithFrame:frame NS_DESIGNATED_INITIALIZER;

}

NSProgress *progress = urlsession.progress;

@end

1--> 设置progressViewStyle

// _progressView.progressViewStyle=UIProgressViewStyleBar;

4--> 设置未走过进度的进度条颜色

//设置滑动条最大值

<<当一个邮件应用程序下载消息时它的进度条会在应用程序的底部显示。UIProgressView类提供了管理风格的进度条,用于获取和设置值是固定的任务的进度的属性

@implementation ViewController

6-->设置未走过进度的背景图案

_progressView.progressTintColor=[UIColor redColor];

11.[self.view addSubview:self.progressView];

_progressView =[[UIProgressView alloc]init];

NSLog(@"value=%f",_slider.value);

_progressView.trackTintColor =[UIColor blueColor];

//范围从0~1,最小值为0,最大值为1.

  1. self.progressView.contentMode = UIViewContentModeScaleAspectFill;

//表示进度条未完成的,剩余的轨迹颜色,默认是灰色

//设置滑块的颜色

@end

@end

- didReceiveMemoryWarning {

// 关于改变UIProgressView的宽、高以及两端弧度

//设定progressView的现实进度(一般情况下可以从后台获取到这个数字)

_slider.frame =CGRectMake(10, 200, 300, 40);

- pressSlider{

8.self.progressView.layer.cornerRadius = 1.0;

@property(retain,nonatomic) UIProgressView * pView;

3. self.progressView.progressTintColor=COLOR_THEME;//设定progressView的显示颜色

- viewDidLoad {

}

  1. CGAffineTransform transform = CGAffineTransformMakeScale(1.0f, 2.0f);

_slider.maximumTrackTintColor=[UIColor blueColor];

[super didReceiveMemoryWarning];

_slider.minimumValue);

//进度条的创建

UIProgressView *_progressView;

//进度条的位置大小设置

6.self.progressView.trackImage = image4;

}

//定义滑动条属性

版权声明:本文由大奖888-www.88pt88.com-大奖888官网登录发布于大奖888官网登录,转载请注明出处://滑动条的定义,其实高度可以这样调整