【源码】iOS自定义进度条高度(UIProgressView进度条高度改变的实现)
今天自定义了iOS中的进度条,发现系统的进度条高度无法改变,
现在自己封装了一种进度条(实际是是UIView而不是UIProgressView),可以改变进度条的高度,非常好用,分享给大家,直接上代码:
// CTWBProgress.h
// Created by WBapple on 16/7/31.
// Copyright © 2016年 王彬. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface CTWBProgress : UIView
// 进度条背景图片
@property (retain, nonatomic) UIImageView *trackView;
// 进图条填充图片
@property (retain, nonatomic) UIImageView *progressView;
//进度
@property (nonatomic) CGFloat targetProgress;
//设置进度条的值
- (void)setProgress:(CGFloat)progress;
@end
// CTWBProgresss.m
// Created by WBapple on 16/7/31.
// Copyright © 2016年 王彬. All rights reserved.
#import "CTWBProgress.h"
@implementation CTWBProgress
//初始化进度条(此处设置进度条背景图片和进图条填充图片)
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
self.backgroundColor = [UIColor clearColor];
// 背景图像
_trackView =
[[UIImageView alloc] initWithFrame:CGRectMake (0, 0, frame.size.width, frame.size.height)];
[_trackView setImage:[UIImage imageNamed:@"1.png"]];
//当前view的主要作用是将出界了的_progressView剪切掉,所以需将clipsToBounds设置为YES
_trackView.clipsToBounds = YES;
[self addSubview:_trackView];
// 填充图像
_progressView = [[UIImageView alloc]
initWithFrame:CGRectMake (0 - frame.size.width, 0, frame.size.width, frame.size.height)];
[_progressView setImage:[UIImage imageNamed:@"2.png"]];
[_trackView addSubview:_progressView];
}
return self;
}
//设置进度条的值
- (void)setProgress:(CGFloat)progress
{
_targetProgress = progress;
[self changeProgressViewFrame];
}
//修改显示内容
- (void)changeProgressViewFrame
{
_progressView.frame = CGRectMake (self.frame.size.width * _targetProgress - self.frame.size.width,
0, self.frame.size.width, self.frame.size.height);
}
@end
使用进度条方法
#import "CTWBProgress.h"
CTWBProgress* progressView;
float progressVlaue;
// 给进度条一个frame,给进度条设置值即可
progressView = [[CTWBProgress alloc] initWithFrame:CGRectMake(FITWIDTH(108), FITHEIGHT(960), FITWIDTH(864), FITHEIGHT(80))];
[progressView setProgress:progressVlaue];
[self.view addSubview:progressView];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端