iOS 自定義長方形進(jìn)度條

由于工作需要,做一個(gè)拍照顯示的進(jìn)度條思劳;樣式鋪滿整個(gè)屏幕

自定義view:

h文件

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface TakePhotoProgress : UIView
@property(assign,nonatomic)CGFloat progress;
@end

NS_ASSUME_NONNULL_END

m文件

#import "TakePhotoProgress.h"

@interface TakePhotoProgress()

@property (nonatomic, strong) UILabel *progressLabel;

@end

@implementation TakePhotoProgress

- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {

self.backgroundColor = [UIColor clearColor];

self.progressLabel = ({
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(self.frame.size.width/2 - 100, self.frame.size.height/2 - 25, 200, 50)];
label.textColor = [UIColor whiteColor];
label.font = [UIFont systemFontOfSize:15];
label.textAlignment = NSTextAlignmentCenter;
label;
});
[self addSubview:self.progressLabel];


}
return self;
}


- (void)drawRect:(CGRect)rect {
//    定義扇形中心
CGPoint origin = CGPointMake(kScreenWidth/2 +50, kScreenheight/2);
//    定義扇形半徑
CGFloat radius = kScreenWidth/2 +100;

//    設(shè)定扇形起點(diǎn)位置
CGFloat startAngle = - M_PI_2;
//    根據(jù)進(jìn)度計(jì)算扇形結(jié)束位置
CGFloat endAngle = startAngle + self.progress * M_PI * 2;

//    根據(jù)起始點(diǎn)、原點(diǎn)、半徑繪制弧線
UIBezierPath *sectorPath = [UIBezierPath bezierPathWithArcCenter:origin radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];

//    從弧線結(jié)束為止繪制一條線段到圓心态辛。這樣系統(tǒng)會(huì)自動(dòng)閉合圖形,繪制一條從圓心到弧線起點(diǎn)的線段挺尿。
[sectorPath addLineToPoint:origin];

//    設(shè)置扇形的填充顏色
[RGBCOLOR(0, 0, 0, 0.5) set];

//    設(shè)置扇形的填充模式
[sectorPath fill];
}


//重寫progress的set方法奏黑,可以在賦值的同時(shí)給label賦值
- (void)setProgress:(CGFloat)progress{
_progress = progress;

//    對label進(jìn)行賦值
//    self.progressLabel.text = [NSString stringWithFormat:@"圖片接收中%0.2f%%",progress * 100];
self.progressLabel.text = [NSString stringWithFormat:@"%@ %0.2f%%",NSLocalizedString(@"圖片接收中:", nil),progress * 100];
[self setNeedsDisplay];
}

@end

接下來就是調(diào)用了

在需要調(diào)用的方法直接引用


image.png
-(void)takePhotoProgress{

if(!_PhotoProgress){
_PhotoProgress = [[TakePhotoProgress alloc] initWithFrame:CGRectMake(-50, 0, kScreenWidth +100, kScreenheight)];
[self. view addSubview:_PhotoProgress];
[self startTimer];
}


}

定時(shí)器

#pragma mark - 定時(shí)器

- (NSTimer *)Ttimer
{
if (_Ttimer == nil) {
_Ttimer = [NSTimer scheduledTimerWithTimeInterval:0.15 target:self selector:@selector(progressChange) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:_Ttimer forMode:NSRunLoopCommonModes];   //防止計(jì)時(shí)器卡頓等其它現(xiàn)象
}
return _Ttimer;
}

- (void)startTimer
{
self. takeprogress = 0.0;
[self. Ttimer setFireDate:[NSDate distantPast]];  //開啟定時(shí)器

}
-(void)stopTimer{

[_Ttimer invalidate];  //銷毀
_Ttimer=nil;

}

- (void)progressChange
{
self. takeprogress += 0.025;
NSLog(@"1 progress = %f", self.takeprogress);

if (self. takeprogress >= 1) {
[self stopTimer];
if(_PhotoProgress){
[_PhotoProgress removeFromSuperview];
_PhotoProgress =nil;

}
return;
}
_PhotoProgress. progress = self.takeprogress;
}

歡迎評(píng)論區(qū)交流炊邦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市熟史,隨后出現(xiàn)的幾起案子馁害,更是在濱河造成了極大的恐慌,老刑警劉巖蹂匹,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碘菜,死亡現(xiàn)場離奇詭異,居然都是意外死亡限寞,警方通過查閱死者的電腦和手機(jī)忍啸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來履植,“玉大人吊骤,你說我怎么就攤上這事【材幔” “怎么了白粉?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鼠渺。 經(jīng)常有香客問我鸭巴,道長,這世上最難降的妖魔是什么拦盹? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任鹃祖,我火速辦了婚禮,結(jié)果婚禮上普舆,老公的妹妹穿的比我還像新娘恬口。我一直安慰自己,他們只是感情好沼侣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布祖能。 她就那樣靜靜地躺著,像睡著了一般蛾洛。 火紅的嫁衣襯著肌膚如雪养铸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天轧膘,我揣著相機(jī)與錄音钞螟,去河邊找鬼。 笑死谎碍,一個(gè)胖子當(dāng)著我的面吹牛鳞滨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蟆淀,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拯啦,長吁一口氣:“原來是場噩夢啊……” “哼闽晦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起提岔,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笋敞,沒想到半個(gè)月后碱蒙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夯巷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年赛惩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趁餐。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喷兼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出后雷,到底是詐尸還是另有隱情季惯,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布臀突,位于F島的核電站勉抓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏候学。R本人自食惡果不足惜藕筋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梳码。 院中可真熱鬧隐圾,春花似錦、人聲如沸掰茶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽濒蒋。三九已至叨咖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啊胶,已是汗流浹背甸各。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留焰坪,地道東北人趣倾。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像某饰,于是被迫代替她去往敵國和親儒恋。 傳聞我的和親對象是個(gè)殘疾皇子善绎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容