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

首頁 > 系統 > iOS > 正文

iOS使用UIBezierPath實現ProgressView

2020-07-26 02:50:44
字體:
來源:轉載
供稿:網友

使用UIBezierPath實現ProgressView實現的效果如下:

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

控制器代碼:

//// 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 - 設置界面- (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];  // 注冊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{    // 創建貝瑟爾路徑    /*  CGFloat width = self.progress / rect.size.width * rect.size.width;  // 顯示的寬度 = 服務器返回的數值 / 設置的總寬度 * 滿值;      顯示的寬度= 滿值 * 比例值   比例值 = 服務器返回的寬度 / 滿值   */    CGFloat width = rect.size.width * self.progress / rect.size.width;   // 顯示的寬度 = 服務器返回的數值 * 設置的總寬度 / 滿值;  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;  // 重繪,系統會先創建與view相關聯的上下文,然后再調用drawRect  [self setNeedsDisplay];}@end

是不是超級簡單。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91高清在线免费观看| 亚洲欧洲日产国码av系列天堂| 欧美精品激情在线| 福利二区91精品bt7086| 国产不卡一区二区在线播放| 欧美一区二区三区免费观看| 亚洲性无码av在线| 国内精品一区二区三区| 欧美超级乱淫片喷水| 欧美亚洲在线播放| 亚洲欧美激情在线视频| 成人在线免费观看视视频| 91精品国产99| 国产91精品久久久久久久| 国产色婷婷国产综合在线理论片a| 国产www精品| 精品久久久久久亚洲精品| 2019中文字幕免费视频| 久久免费视频在线观看| 国产日韩精品在线播放| 中文字幕免费国产精品| 97久久伊人激情网| 日韩在线播放一区| 色综合男人天堂| 国内精品久久久久久| 日本久久久a级免费| 欧美激情精品久久久| 一区二区三区四区在线观看视频| 精品国产999| 亚洲欧美日韩区| 久久精品99久久久香蕉| 91久久在线观看| 69视频在线播放| 国产精品一区二区三区久久久| 国产婷婷97碰碰久久人人蜜臀| 韩国三级日本三级少妇99| 色偷偷88888欧美精品久久久| 在线观看亚洲视频| 色综合久久精品亚洲国产| 久久精品精品电影网| 77777少妇光屁股久久一区| 亚洲图片制服诱惑| 亚洲欧美制服丝袜| 日韩在线欧美在线国产在线| 38少妇精品导航| 久久国产精品久久国产精品| 亚洲精品资源美女情侣酒店| 欧美乱妇高清无乱码| 国产精品久久久久久久久免费| 国产精品成人v| 日韩精品福利在线| 中文字幕在线国产精品| 98精品在线视频| 久久久久久美女| 久久久久久噜噜噜久久久精品| 91大神福利视频在线| 中文字幕视频一区二区在线有码| 欧美日韩一区二区免费在线观看| 欧美在线日韩在线| 国产91在线播放九色快色| 欧美成人一区在线| 欧美黑人巨大xxx极品| 中文字幕日韩av电影| 亚洲黄色www| 国产精品久久久久久久久久东京| 九九热这里只有精品免费看| 91精品久久久久久久久青青| 日韩av中文字幕在线播放| 国产精品一区二区久久久| 一区二区日韩精品| 亚洲欧美在线一区二区| 国产欧美在线观看| 亚洲国产精品嫩草影院久久| 国产精品久久在线观看| 欧美在线视频观看| 国产一区香蕉久久| 国产在线视频不卡| 影音先锋欧美在线资源| 亚洲精品欧美日韩专区| 欧美人与物videos| 欧美日韩一区免费| 亚洲毛茸茸少妇高潮呻吟| 国产伊人精品在线| 疯狂蹂躏欧美一区二区精品| 色七七影院综合| 国模精品一区二区三区色天香| 国产成人福利视频| 久久综合国产精品台湾中文娱乐网| 国模视频一区二区| 亚洲成人久久久| 欧美激情综合色| 米奇精品一区二区三区在线观看| 久久国产加勒比精品无码| 日韩精品在线免费观看| 亚洲精品在线观看www| 国产精品日韩精品| 欧美日韩福利在线观看| 菠萝蜜影院一区二区免费| 久久久久亚洲精品成人网小说| www.欧美精品一二三区| 国产精品免费久久久久久| 亚洲第一男人av| 91视频免费网站| 亚洲国产精品yw在线观看| 欧美精品日韩三级| 欧美人与物videos| 亚洲综合在线做性| 欧美性高跟鞋xxxxhd| 国产成人avxxxxx在线看| 国产成人aa精品一区在线播放| 亚洲国产第一页| 九九热r在线视频精品| 日韩经典中文字幕| 97超碰蝌蚪网人人做人人爽| 国产成+人+综合+亚洲欧美丁香花| 欧美三级欧美成人高清www| 国产日韩一区在线| 国产成人aa精品一区在线播放| 国产精品成人免费电影| 色综合久久天天综线观看| 久久久最新网址| 午夜精品久久久久久99热软件| 成人欧美在线视频| 国产成人精品网站| 日韩美女激情视频| 国内精品国产三级国产在线专| 日韩av网址在线观看| 欧美性猛交xxxx偷拍洗澡| 色综合久综合久久综合久鬼88| 岛国av一区二区三区| 亚洲精品永久免费精品| 精品久久久视频| 色www亚洲国产张柏芝| 欧美视频免费在线观看| 日韩一区二区三区国产| 日韩精品日韩在线观看| 伊人久久久久久久久久久| 日韩在线观看av| 秋霞av国产精品一区| 俺去亚洲欧洲欧美日韩| 亚洲自拍偷拍第一页| 91久久国产精品| 97视频免费在线观看| 欧美日韩性视频在线| 亚洲欧美一区二区三区四区| 91经典在线视频| 日韩av网址在线| 亚洲2020天天堂在线观看| 91精品国产自产在线观看永久| 欧美性猛交xxxx富婆弯腰| 粗暴蹂躏中文一区二区三区| 中文字幕在线精品| 亚洲男人天堂网| 欧美成人精品在线视频| 欧美日韩不卡合集视频| 91九色综合久久| 日本亚洲精品在线观看| 精品无人区太爽高潮在线播放| 日本久久中文字幕| 久久精品99久久久久久久久| 亚洲男人天堂手机在线| 奇米四色中文综合久久| 亚洲毛片一区二区| 97国产精品人人爽人人做|