日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS使用UIBezierPath实现ProgressView

發(fā)布時(shí)間:2024/4/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS使用UIBezierPath实现ProgressView 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)現(xiàn)效果如下:

界面采用UITableView和TabelViewCell的實(shí)現(xiàn),紅色的視圖采用UIBezierPath繪制.注意紅色的部分左上角,左下角是直角喲!!!!不多說<這里才是用UIBezierPath實(shí)現(xiàn)的真正愿意啦!!!?>,代碼如下:

控制器代碼:

// // ViewController.m // ProgressViewDemo // // Created by 思 彭 on 2017/4/20. // Copyright ? 2017年 思 彭. All rights reserved. // #import "ViewController.h" #import "ProgressTableViewCell.h"@interface ViewController ()<UITableViewDelegate, UITableViewDataSource>@property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) CAShapeLayer *layer;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.navigationItem.title = @"ProgressDemo";[self setUI]; }#pragma mark - 設(shè)置界面- (void)setUI {self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStyleGrouped];self.tableView.delegate = self;self.tableView.dataSource = self;self.tableView.backgroundColor = [UIColor clearColor];// 注冊(cè)cell[self.tableView registerClass:[ProgressTableViewCell class] forCellReuseIdentifier:@"cell"];self.tableView.tableFooterView = [[UIView alloc]init];[self.view addSubview:self.tableView]; }#pragma mark - UITableViewDataSource- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return 1; }- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return 5; }- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {ProgressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];return cell; }#pragma mark - UITableViewDelegate- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {return 0.001f;; }- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {return 0.0001f; }- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {return 44; }@end

TabelViewCell代碼:

// // ProgressTableViewCell.m // ProgressViewDemo // // Created by 思 彭 on 2017/4/21. // Copyright ? 2017年 思 彭. All rights reserved. // #import "ProgressTableViewCell.h" #import "Masonry.h" #import "ProgressView.h"@interface ProgressTableViewCell ()@property (nonatomic, strong) UILabel *titleLabel; @property (nonatomic, strong) ProgressView *progressView; @property (nonatomic, strong) UILabel *numberLabel;@end@implementation ProgressTableViewCell- (void)awakeFromNib {[super awakeFromNib];// Initialization code }- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {[self createSubViews];[self layOut];}return self; }- (void)createSubViews {self.titleLabel = [[UILabel alloc]init];self.titleLabel.font = [UIFont systemFontOfSize:16];self.titleLabel.text = @"西單大悅城";self.titleLabel.textAlignment = NSTextAlignmentLeft;[self.contentView addSubview:self.titleLabel];self.progressView = [[ProgressView alloc]init];self.progressView.backgroundColor = [UIColor whiteColor];self.progressView.progress = arc4random_uniform(100) + 40;[self.contentView addSubview:self.progressView];self.numberLabel = [[UILabel alloc]init];self.numberLabel.font = [UIFont systemFontOfSize:16];self.numberLabel.text = @"¥2000";self.numberLabel.textAlignment = NSTextAlignmentRight;[self.contentView addSubview:self.numberLabel]; }- (void)layOut {[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {make.left.mas_equalTo(self.contentView).offset(10);make.centerY.mas_equalTo(self.contentView); // make.width.greaterThanOrEqualTo(@(70));make.width.mas_equalTo(self.contentView.frame.size.width * 0.3);}];[self.progressView mas_makeConstraints:^(MASConstraintMaker *make) {make.left.mas_equalTo(self.titleLabel.mas_right).offset(10);make.height.mas_equalTo(20);make.centerY.mas_equalTo(self.titleLabel.mas_centerY);make.width.mas_equalTo(self.contentView.frame.size.width * 0.4);}];[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {make.left.mas_equalTo(self.progressView.mas_right).offset(10);make.centerY.mas_equalTo(self.contentView);make.right.mas_equalTo(self.contentView).offset(-10);}]; }@end

ProgressView代碼:

// // ProgressView.m // ProgressViewDemo // // Created by 思 彭 on 2017/4/20. // Copyright ? 2017年 思 彭. All rights reserved. // #import "ProgressView.h"@interface ProgressView ()@end@implementation ProgressView-(void)drawRect:(CGRect)rect{// 創(chuàng)建貝瑟爾路徑/*CGFloat width = self.progress / rect.size.width * rect.size.width;// 顯示的寬度 = 服務(wù)器返回的數(shù)值 / 設(shè)置的總寬度 * 滿值;顯示的寬度= 滿值 * 比例值比例值 = 服務(wù)器返回的寬度 / 滿值*/CGFloat width = rect.size.width * self.progress / rect.size.width;// 顯示的寬度 = 服務(wù)器返回的數(shù)值 * 設(shè)置的總寬度 / 滿值;UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, width, rect.size.height) byRoundingCorners:UIRectCornerTopRight|UIRectCornerBottomRight cornerRadii:CGSizeMake(rect.size.height, rect.size.height)];[[UIColor redColor] setFill];[path fill]; }- (void)setProgress:(CGFloat)progress{_progress = progress;// 重繪,系統(tǒng)會(huì)先創(chuàng)建與view相關(guān)聯(lián)的上下文,然后再調(diào)用drawRect [self setNeedsDisplay]; }@end

是不是超級(jí)簡(jiǎn)單,可是我一開始還是沒有想到,還是自己太菜..?...奮斗吧!!!

?

轉(zhuǎn)載于:https://www.cnblogs.com/pengsi/p/6746798.html

總結(jié)

以上是生活随笔為你收集整理的iOS使用UIBezierPath实现ProgressView的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲三级电影 | 日韩欧美有码 | 麻豆系列在线观看 | 亚洲免费不卡视频 | 欧美中文字幕在线视频 | 亚洲国产私拍精品国模在线观看 | www黄色 | 性色AV无码久久一区二区三 | 国产精品天堂 | 亚洲人成色777777精品音频 | 污在线观看 | 理伦毛片 | 国产精品视频久久久 | 亚洲精品97久久中文字幕 | 午夜激情视频网站 | 97热视频 | 无码任你躁久久久久久久 | 欧美色图888 | 69视频免费观看 | 玖玖五月 | 国av在线 | 色久综合 | 国产偷自拍视频 | 黄色一级片在线 | www.人人草 | 亚洲av综合色区无码一二三区 | 国产精品天堂 | 8x8x国产精品一区二区 | 看片日韩 | exo妈妈mv在线播放高清免费 | 性爱免费在线视频 | 国产精品无码一区二区三 | 68日本xxxxxⅹxxx22| 91久久电影 | 国产精品理论在线观看 | 久久久黄色片 | 精品一区二区三区精华液 | 男女在线观看 | 国产99页 | 差差差30分钟 | 爱看av | 青青草视频免费看 | 无码aⅴ精品一区二区三区 精品久久在线 | 日本成人三级 | 国产午夜精品免费一区二区三区视频 | 欧美亚洲一区二区三区 | 爽爽窝窝午夜精品一区二区 | 日本久久亚洲 | 国产xxxxxx| 揄拍成人国产精品视频 | 日本人妻熟妇久久久久久 | www日本在线 | 午夜精品在线观看 | 亚洲国产剧情在线观看 | 亚洲精品福利在线 | 伊人久久大香线 | 国产精品xxxx | 国产精品视频区 | 一级做a爱片 | 国产69熟 | 免费黄av| 天天爽| 亚洲欧洲日韩综合 | 性生活在线视频 | 久久激情片 | xx性欧美肥妇精品久久久久久 | 色妺妺视频网 | 99久久精品免费 | 亚洲一区二区精品 | 国产免费黄色网址 | 日本黄色美女视频 | 黄色一二三区 | 97视频在线观看免费 | 大陆一级片 | 欧美少妇精品 | 日韩一区二区三区免费在线观看 | 日韩乱码一区二区三区 | 中文久久精品 | 日本国产精品视频 | 久久久国产一区 | 夫の上司に犯波多野结衣853 | 金鱼妻日剧免费观看完整版全集 | 久久久久久国产精品一区 | 国产第1页| 久热青草 | 久久久久久久极品内射 | 蜜桃免费在线视频 | 日日夜夜爽爽 | 欧美日韩中文在线观看 | 欧美男人又粗又长又大 | 天天添天天操 | 男女做爰真人视频直播 | 色综合天天综合网天天看片 | 亚洲自拍色 | 成年视频在线观看 | 久久草视频在线 | 99久久久无码国产精品性 | 亚洲一区二区三区四区五区午夜 | 亚洲欧美日韩综合在线 |