麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

iOS如何自定義步驟進度條實例詳解

2019-10-21 18:39:18
字體:
來源:轉載
供稿:網友

前言

最近新項目要做入駐功能,其中包括一個入住流程,類似登錄或者注冊流程如下圖。

iOS,步驟,進度條

之前想著用自己繪圖來做,可是又懶不想多寫代碼,所以就想著能不能用進度條來做。

實現方法如下:

1.用進度條做的首先要解決的是進度條的高度問題,可以通過仿射變換來擴大高度。

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

2.用進度條要設置進度progress要與按鈕對應

通過步驟的索引來改變進度的值和按鈕的圖片。由于按鈕的左右有間隔所以要注意-1、0和最后一個的progress值。

3.擴展

看有一些類似查公交、車站運行的APP有的可以點擊站點,所以就用按鈕來做,這樣可以擴展。

 4.代碼

//// StepProgressView.h// CustomProgress//// Created by City--Online on 15/12/12.// Copyright © 2015年 City--Online. All rights reserved.//#import <UIKit/UIKit.h>@interface StepProgressView : UIView@property (nonatomic,assign) NSInteger stepIndex;+(instancetype)progressViewFrame:(CGRect)frame withTitleArray:(NSArray *)titleArray;@end
//// StepProgressView.m// CustomProgress//// Created by City--Online on 15/12/12.// Copyright © 2015年 City--Online. All rights reserved.//#import "StepProgressView.h"static const float imgBtnWidth=18;@interface StepProgressView ()@property (nonatomic,strong) UIProgressView *progressView;//用UIButton防止以后有點擊事件@property (nonatomic,strong) NSMutableArray *imgBtnArray;@end@implementation StepProgressView+(instancetype)progressViewFrame:(CGRect)frame withTitleArray:(NSArray *)titleArray{ StepProgressView *stepProgressView=[[StepProgressView alloc]initWithFrame:frame]; //進度條 stepProgressView.progressView=[[UIProgressView alloc]initWithFrame:CGRectMake(0, 5, frame.size.width, 10)]; stepProgressView.progressView.progressViewStyle=UIProgressViewStyleBar; stepProgressView.progressView.transform = CGAffineTransformMakeScale(1.0f,2.0f); stepProgressView.progressView.progressTintColor=[UIColor redColor]; stepProgressView.progressView.trackTintColor=[UIColor blueColor]; stepProgressView.progressView.progress=0.5; [stepProgressView addSubview:stepProgressView.progressView];   stepProgressView.imgBtnArray=[[NSMutableArray alloc]init]; float _btnWidth=frame.size.width/(titleArray.count); for (int i=0; i<titleArray.count; i++) {  //圖片按鈕 UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"0.png"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateSelected]; btn.frame=CGRectMake(_btnWidth/2+_btnWidth*i-imgBtnWidth/2, 0, imgBtnWidth, imgBtnWidth); btn.selected=YES;  [stepProgressView addSubview:btn]; [stepProgressView.imgBtnArray addObject:btn];  //文字 UILabel *titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(btn.center.x-_btnWidth/2, frame.size.height-20, _btnWidth, 20)]; titleLabel.text=[titleArray objectAtIndex:i]; [titleLabel setTextColor:[UIColor blackColor]]; titleLabel.textAlignment=NSTextAlignmentCenter; titleLabel.font=[UIFont systemFontOfSize:18]; [stepProgressView addSubview:titleLabel]; } stepProgressView.stepIndex=-1; return stepProgressView; }-(void)setStepIndex:(NSInteger)stepIndex{// 默認為-1 小于-1為-1 大于總數為總數 _stepIndex=stepIndex<-1?-1:stepIndex; _stepIndex=stepIndex >=_imgBtnArray.count-1?_imgBtnArray.count-1:stepIndex; float _btnWidth=self.bounds.size.width/(_imgBtnArray.count); for (int i=0; i<_imgBtnArray.count; i++) { UIButton *btn=[_imgBtnArray objectAtIndex:i]; if (i<=_stepIndex) {  btn.selected=YES; } else{  btn.selected=NO; } } if (_stepIndex==-1) { self.progressView.progress=0.0; } else if (_stepIndex==_imgBtnArray.count-1) { self.progressView.progress=1.0; } else { self.progressView.progress=(0.5+_stepIndex)*_btnWidth/self.frame.size.width; }}@end

5.使用和效果

NSArray *arr=@[@"區寶時尚",@"區寶時尚",@"時尚",@"區寶時尚",@"時尚"]; StepProgressView *stepView=[StepProgressView progressViewFrame:CGRectMake(0, 100, self.view.bounds.size.width, 60) withTitleArray:arr]; stepView.stepIndex=2; [self.view addSubview:stepView];

iOS,步驟,進度條

 補充:上面的代碼有一個bug,例如stepIndex=-1時,_stepIndex=并不等-1,原來數組的count返回的是NSUInteger而stepIndex是NSInteger類型,所以需要強制轉換一下

stepIndex=stepIndex<-1?-1:stepIndex; _stepIndex = stepIndex >= (NSInteger)(_imgBtnArray.count-1) ? _imgBtnArray.count-1:stepIndex;

總結:

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国内精品久久久久久久久久 | 一级国产精品一级国产精品片 | 2019中文字幕在线播放 | 精品一区二区三区免费毛片 | 国产毛片网站 | 免费观看黄视频 | 亚洲伊人色欲综合网 | 欧美精品免费一区二区三区 | 成人午夜视频在线观看 | 日本中文字幕久久 | 久久精品成人影院 | 色播一区 | 在线成人一区 | 欧美成人国产va精品日本一级 | 免费观看国产视频 | 久久欧美亚洲另类专区91大神 | 中国成人在线视频 | 亚洲第一成人在线 | 精品久久中文网址 | 久久精品观看 | 久久久成人动漫 | 久久精品操 | 在线成人毛片 | 精品一区久久久 | 亚洲av一级毛片特黄大片 | 亚洲xxx在线观看 | 日产精品一区二区三区在线观看 | 噜噜噜躁狠狠躁狠狠精品视频 | 毛片在线免费视频 | 99视频在线观看视频 | 色a综合| 欧美性受ⅹ╳╳╳黑人a性爽 | 成年人激情在线 | 日韩视频一二区 | www.99re14.com | 亚洲最新色| 天天躁狠狠躁夜躁2020挡不住 | 精品国产91久久久久久久妲己 | www.69色 | 毛片在线免费视频 | 久久精品视频1 |