亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

iOS實現(xiàn)步驟進(jìn)度條功能實例代碼

2019-10-21 18:39:18
字體:
供稿:網(wǎng)友

前言

在開發(fā)中,我們經(jīng)常在很多場景下需要用到進(jìn)度條,比如文件的下載,或者文件的上傳等。 本文主要給大家介紹的是一個步驟進(jìn)度條效果,步驟進(jìn)度條效果參考

iOS,步驟,進(jìn)度條,例代碼

iOS UIKit 框架中并沒有提供類似的控件,我們可以使用 UIProgressView、UIView、UILabel 組合實現(xiàn)步驟進(jìn)度條效果。

  • UIProgressView——實現(xiàn)水平的進(jìn)度條效果;
  • UIView——把UIView裁剪成圓形,實現(xiàn)索引節(jié)點效果;
  • UILabel——每個節(jié)點下面的提示文字。

源碼

將步驟進(jìn)度條封裝成一個 HQLStepView 類,它是 UIView 的子類。

HQLStepView.h 文件

#import <UIKit/UIKit.h>@interface HQLStepView : UIView// 指定初始化方法- (instancetype)initWithFrame:(CGRect)frame titlesArray:(NSArray *)titlesArray stepIndex:(NSUInteger)stepIndex;// 設(shè)置當(dāng)前步驟- (void)setStepIndex:(NSUInteger)stepIndex animation:(BOOL)animation;@end

HQLStepView.m 文件

#import "HQLStepView.h"// 步驟條主題色#define TINT_COLOR [UIColor colorWithRed:35/255.f green:135/255.f blue:255/255.f alpha:1]@interface HQLStepView ()@property (nonatomic, copy) NSArray *titlesArray;@property (nonatomic, assign) NSUInteger stepIndex;@property (nonatomic, strong) UIProgressView *progressView;@property (nonatomic, strong) NSMutableArray *circleViewArray;@property (nonatomic, strong) NSMutableArray *titleLabelArray;@property (nonatomic, strong) UILabel *indicatorLabel;@end@implementation HQLStepView#pragma mark - Init- (instancetype)initWithFrame:(CGRect)frame titlesArray:(NSArray *)titlesArray stepIndex:(NSUInteger)stepIndex { self = [super initWithFrame:frame]; if (self) { _titlesArray = [titlesArray copy]; _stepIndex = stepIndex; // 進(jìn)度條 [self addSubview:self.progressView];  for (NSString *title in _titlesArray) {    // 圓圈  UIView *circle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 13, 13)];  circle.backgroundColor = [UIColor lightGrayColor];  circle.layer.cornerRadius = 13.0f / 2;  [self addSubview:circle];  [self.circleViewArray addObject:circle];    // 標(biāo)題  UILabel *label = [[UILabel alloc] init];  label.text = title;  label.font = [UIFont systemFontOfSize:14];  label.textAlignment = NSTextAlignmentCenter;  [self addSubview:label];  [self.titleLabelArray addObject:label]; }  // 當(dāng)前索引數(shù)字 [self addSubview:self.indicatorLabel]; } return self;}// 布局更新頁面元素- (void)layoutSubviews { NSInteger perWidth = self.frame.size.width / self.titlesArray.count;  // 進(jìn)度條 self.progressView.frame = CGRectMake(0, 0, self.frame.size.width - perWidth, 1); self.progressView.center = CGPointMake(self.frame.size.width / 2, self.frame.size.height / 4);  CGFloat startX = self.progressView.frame.origin.x; for (int i = 0; i < self.titlesArray.count; i++) { // 圓圈 UIView *cycle = self.circleViewArray[i]; if (cycle) {  cycle.center = CGPointMake(i * perWidth + startX, self.progressView.center.y); }  // 標(biāo)題 UILabel *label = self.titleLabelArray[i]; if (label) {  label.frame = CGRectMake(perWidth * i, self.frame.size.height / 2, self.frame.size.width / self.titlesArray.count, self.frame.size.height / 2 ); } } self.stepIndex = self.stepIndex;}#pragma mark - Custom Accessors- (UIProgressView *)progressView { if (!_progressView) { _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; _progressView.progressTintColor = TINT_COLOR; _progressView.progress = self.stepIndex / ((self.titlesArray.count - 1) * 1.0); } return _progressView;}- (UILabel *)indicatorLabel { if (!_indicatorLabel) { _indicatorLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 23, 23)]; _indicatorLabel.textColor = TINT_COLOR; _indicatorLabel.textAlignment = NSTextAlignmentCenter; _indicatorLabel.backgroundColor = [UIColor whiteColor]; _indicatorLabel.layer.cornerRadius = 23.0f / 2; _indicatorLabel.layer.borderColor = [TINT_COLOR CGColor]; _indicatorLabel.layer.borderWidth = 1; _indicatorLabel.layer.masksToBounds = YES; } return _indicatorLabel;}- (NSMutableArray *)circleViewArray { if (!_circleViewArray) { _circleViewArray = [[NSMutableArray alloc] initWithCapacity:self.titlesArray.count]; } return _circleViewArray;}- (NSMutableArray *)titleLabelArray { if (!_titleLabelArray) { _titleLabelArray = [[NSMutableArray alloc] initWithCapacity:self.titlesArray.count]; } return _titleLabelArray;}// 設(shè)置當(dāng)前進(jìn)度索引,更新圓形圖片、文本顏色、當(dāng)前索引數(shù)字- (void)setStepIndex:(NSUInteger)stepIndex { for (int i = 0; i < self.titlesArray.count; i++) { UIView *cycle = self.circleViewArray[i]; UILabel *label = self.titleLabelArray[i]; if (stepIndex >= i) {  cycle.backgroundColor = TINT_COLOR;  label.textColor = TINT_COLOR; } else {  cycle.backgroundColor = [UIColor lightGrayColor];  label.textColor = [UIColor lightGrayColor]; } }}#pragma mark - Public- (void)setStepIndex:(NSUInteger)stepIndex animation:(BOOL)animation { if (stepIndex < self.titlesArray.count) { // 更新顏色 self.stepIndex = stepIndex; // 設(shè)置進(jìn)度條 [self.progressView setProgress:stepIndex / ((self.titlesArray.count - 1) * 1.0) animated:animation]; // 設(shè)置當(dāng)前索引數(shù)字 self.indicatorLabel.text = [NSString stringWithFormat:@"%lu", stepIndex + 1]; self.indicatorLabel.center = ((UIView *)[self.circleViewArray objectAtIndex:stepIndex]).center; }}@end

接口調(diào)用:

- (void)viewDidLoad { [super viewDidLoad];  // 初始化 _hqlStepView = [[HQLStepView alloc] initWithFrame:CGRectMake(0, 200, self.view.frame.size.width, 60) titlesArray:@[@"第一步", @"第二步", @"第三步"] stepIndex:0]; [self.view addSubview:_hqlStepView];}- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated];  // 設(shè)置當(dāng)前步驟,步驟索引=數(shù)組索引 [_hqlStepView setStepIndex:0 animation:YES];}

效果:

iOS,步驟,進(jìn)度條,例代碼

因為 UIProgressView 實現(xiàn)的水平進(jìn)度條高度值默認(rèn)為1,設(shè)置frame是無效的??梢酝ㄟ^仿射變換的方式增加它的高度。

第三方框架

參考:

總結(jié):

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
男人添女人下部高潮视频在观看| 成人av电影在线观看| 欧美亚洲综合另类| 亚洲日穴在线视频| 在线亚洲午夜片av大片| 精品国产成人| 久久视频国产精品免费视频在线| 91精品91久久久中77777老牛| 精品国产依人香蕉在线精品| 久久精品视频免费看| 18free性欧美另类hd| 一区二区三区免费高清视频| 一区二区三区在线观看免费视频| 欧美aaaaaaaaaaaa| 亚洲欧美日韩一区二区| 久久久久久亚洲综合影院红桃| 香港成人在线视频| 亚洲美女在线国产| 中文字幕视频免费观看| 老司机激情视频| 日本香蕉视频在线观看| 亚洲丝袜另类动漫二区| 天堂网在线观看国产精品| 久久精品国产一区二区三区不卡| 日韩三级av| 欧美成人免费看| 香蕉av在线播放| 国产变态拳头交视频一区二区| 亚洲国产精品毛片| 日韩福利片在线观看| 99久久免费精品国产免费| 精品无码人妻少妇久久久久久| 日韩在线中文字幕| 97精品视频在线观看自产线路二| 国产5g成人5g天天爽| 91青青草免费在线看| 九九热青青草| 97超级碰碰人国产在线观看| 午夜久久福利视频| 亚洲精品中文字| 麻豆成人91精品二区三区| 999精品一区| 色狠狠桃花综合| 无码aⅴ精品一区二区三区| 欧日韩精品视频| 国产又粗又黄视频| 99久久亚洲精品日本无码| 亚洲欧美久久婷婷爱综合一区天堂| www男人的天堂| 欧美男人亚洲天堂| 无码日韩精品一区二区免费| 中文字幕日韩有码| 欧美日韩激情网| 国产精品av一区| 国产在线观看欧美| 欧美va久久久噜噜噜久久| 成人高清在线观看| 伊人色综合久久天天五月婷| 香蕉精品视频在线| 国产一区精品二区| 中文在线网在线中文| 簧片在线观看| 无码小电影在线观看网站免费| 国产无遮挡裸体免费久久| 亚洲国产日韩欧美在线动漫| 蜜桃av一区二区| 爱情岛论坛亚洲自拍| 国产精品美女一区二区视频| av在线亚洲男人的天堂| 亚洲国产高清福利视频| 日本不卡二区高清三区| 精品久久久久久亚洲精品| 在线成人激情视频| 日韩精品一级中文字幕精品视频免费观看| 日本免费福利视频| 青青草在线视频免费观看| 青娱乐在线免费视频| 亚洲天堂男人的天堂| 一区二区三区观看| 日韩欧美一区二区久久婷婷| 成人性生生活性生交12| 黄色国产一级视频| 深夜福利久久| 99久久人妻无码中文字幕系列| eeuss影院www在线观看| 91丨porny丨探花| 99久久久精品| 比比资源先锋| 亚洲精品网站在线播放gif| 国产欧美日韩一区二区三区在线观看| 深夜福利日韩在线看| 国产一区二区视频播放| 亚洲成熟少妇视频在线观看| 最近中文字幕免费mv视频多少集| 99久久亚洲精品日本无码| 在线能看的av| 美女日批视频在线观看| 五月激情六月婷婷| 久久精品国产亚洲777| 国产最新视频在线| 91福利精品视频| 日韩欧美一区二区三区久久| 欧美日韩亚洲一区三区| 国产成人自拍视频在线| 国产精品三级av在线播放| 玩弄japan白嫩少妇hd| 91免费在线| 久久久久久久久电影| 人人干狠狠干| 中文字幕av亚洲精品一部二部| 一级爱爱免费视频| 免费一级特黄录像| 99久久久免费精品| 精品一区二区三区中文字幕老牛| 亚洲视频精品一区| 日韩激情在线| 亚洲国产一区二区精品专区| 性欧美18一19sex性欧美| 2019中文字幕全在线观看| 性欧美性free| 亚洲欧美日韩在线播放| 久久99久国产精品黄毛片入口| 日韩精品一区二区三区免费观影| 日韩在线导航| 欧美性受xxxx白人性爽| 欧美性jizz18性欧美| 亚洲一二区在线| 高清全集视频免费在线| 精品视频免费在线观看| 欧美性猛片aaaaaaa做受| 成人做爰视频www| 国产精品视频首页| 先锋影音av资源站| 四虎影视免费永久在线| 久久av国产紧身裤| 翁止熄痒禁伦短文合集免费视频| 国产午夜福利一区二区| 强开小嫩苞一区二区三区视频| 亚洲天天在线日亚洲洲精| 欧美精品18videos性欧美| 精品人妻一区二区三区免费| 国产精品久久久久久久久久久免费看| 久久久女人电视剧免费播放下载| 成人精品3d动漫| 欧美国产在线视频| 国产情侣在线视频| 午夜大片在线观看| 色综合色综合色综合| 亚洲综合一区二区三区| 成人综合色站| 欧美123区| 国产高清在线精品一区二区三区| 欧美少妇性xxxx| 亚洲高清在线免费观看| 秘密基地免费观看完整版中文| 91在线视频在线观看| 毛片av一区二区三区| 亚洲精品网站在线播放gif| 男女av在线| 久久人人精品| 久久综合色88| 青青草国产一区二区三区| 欧美特级黄色录像| 老汉色影院首页| 九九精品在线观看| 九色视频成人自拍| 欧美高清视频手机在在线| 污片在线观看一区二区| www.av中文字幕| 夜先锋资源网| 超碰人人干人人| 尤物在线视频| 国产日产欧美一区二区三区| 国产探花视频在线播放| 2014亚洲片线观看视频免费| 国产精品乱码| 亚洲第一主播视频| 日本大片在线看黄a∨免费| 日韩精品视频在线播放| 中文字幕av一区二区三区人妻少妇| 性欧美精品高清| 午夜精品美女自拍福到在线| 一区二区三区四区在线不卡高清| 欧美美女啪啪| 中文精品99久久国产香蕉| 精品免费视频| 日本久久综合| 91成人在线观看喷潮教学| 一级特黄录像免费看| h网站在线看| 亚洲综合中文字幕在线观看| 久久久精品在线观看| 欧美性猛交xxxx乱大交退制版| 国产一区二区精品福利地址| 成人午夜三级| 国产免费av网站| 亚洲一区二区三区黄色| 91精品麻豆日日躁夜夜躁| 免费国产在线精品一区二区三区| 东京热一区二区三区四区| 99国产视频| av成人黄色| 国产精国产精品| 久久97精品久久久久久久不卡| 亚洲黄色免费电影| 欧美精选视频一区二区| 欧美最猛黑人xxxxx猛交| 性爱视频在线播放| 五月天激情丁香| av在线播放资源| 激情亚洲色图| 日本欧美大码aⅴ在线播放| 国内成人精品2018免费看| www.伊人久久| 中文字幕一区三区久久女搜查官| 久久久久久久欧美精品| 成人国产精品| 97超碰国产精品| 美女又爽又黄免费| 在线看黄色的网站| 国产一区二区三区日韩精品| 亚洲精品亚洲人成在线| 日韩成人在线看| 日韩不卡一区二区三区| 久久久久网站| 亚洲精品国偷拍自产在线观看蜜桃| 亚洲激情免费视频| 欧美艳星介绍134位艳星| 一区二区欧美日韩| av一区二区三区免费观看| 精品一区亚洲| 国产精品suv一区二区| 一区二区视频免费看| 18视频在线观看网站| 亚洲精品一二三四| 精品无吗乱吗av国产爱色| 被男同事摸的水好多| 精品一区二区三区视频日产| 欧美午夜精品一区二区| 免费在线欧美视频| av黄色在线看| 国产网站免费在线观看| 亚洲第一色网站| 国产精自产拍久久久久久| 国产在线成人| 中日韩av在线播放| 欧美国产日产韩国视频| 欧美 日韩 国产 成人 在线| 亚洲高清毛片| 成年人免费视频观看| 亚州欧美日韩中文视频| 97成人资源站| 五月激情四射婷婷| 国产精品天堂| 久久国产电影| 免费黄频在线观看| 六月天色婷婷| 99riav国产精品视频| 国产一卡2卡3卡4卡网站免费| 亚洲最大的成人av| 日本三级中文字幕在线观看| 亚洲综合自拍网| 影音先锋5566中文源资源| 亚洲一本二本| 最近2019中文字幕在线高清| 国产美女精品久久久| 久久久久久久国产精品视频| av在线女优影院| 亚洲成人套图| 久久久久97国产| 亚洲视频久久久| 国产视频手机在线播放| 99国产超薄丝袜足j在线观看| 欧美一区二区三区性视频| 精品久久久中文字幕| xxxxbbbb欧美| 久久久精品中文字幕麻豆发布| 欧美日本不卡高清| 91美女福利视频| 色噜噜偷拍精品综合在线| 欧美一区二粉嫩精品国产一线天| 日韩一级视频在线观看| 欧美激情成人在线视频| 国产精品9999| 欧美制服丝袜第一页| 欧美精品videos性欧美| 777精品伊人久久久久大香线蕉| 久久久综合九色合综国产精品| 在线观看国产日韩| 精品视频在线免费看| 国产毛片av| 成年女人免费毛片视频永久| 精品无码久久久久久久久| 亚洲视频欧美视频| 国产调教在线观看| 狠狠综合久久av一区二区蜜桃| 国产精品一区二区在线观看| 欧美做爰啪啪xxxⅹ性| 在线黄色网页| 欧美一区二区在线看| 黄色网页在线免费观看| 中文字幕日韩第一页| 国产美女在线精品免费观看| 国产精品丝袜一区二区三区| 登山的目的在线| 免费观看国产视频在线| 91精品久久久久久久久久久久久久| 欧美精品xxxxbbbb| 中文字幕免费高清网站| 国产精品天干天干在线综合| 国产精品夜夜嗨| 欧美丰满美乳xxx高潮www| 国产美女娇喘av呻吟久久| 免费污污网站| 色欲无码人妻久久精品| 久久久精品免费观看| 夜夜精品视频| 99麻豆久久久国产精品免费| 亚洲美女精品一区| 日本天堂网在线观看| 精品人妻一区二区免费| 99热在线精品观看| 亚洲日本一区二区三区在线不卡| 亚洲欧美日韩国产综合精品二区| 国产精品区在线观看| 免费亚洲一区| 欧美一区二区三区高清视频| 一区二区三区导航|