iOS-电池图标【结合贝塞尔曲线控制电量显示】

基于UIView类:WKJBatteryView
WKJBatteryView.h
#import <UIKit/UIKit.h> @interface WKJBatteryView : UIView
/**
value:0 - 100
*/
- (void)setBatteryValue:(NSInteger)value;
@end
WKJBatteryView.m
#import "WKJBatteryView.h"
@interface WKJBatteryView()
///电池宽度
@property (nonatomic,assign) CGFloat b_width;
///电池高度
@property (nonatomic,assign) CGFloat b_height;
///电池外线宽
@property (nonatomic,assign) CGFloat b_lineW;
@property (nonatomic,strong) UIView *batteryView;
@end
@implementation WKJBatteryView
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
[self drawBattery];
}
return self;
}
///画图标
- (void)drawBattery{
///x坐标
CGFloat b_x = ;
///y坐标
CGFloat b_y = ;
_b_height = self.bounds.size.height - ;
_b_width = self.bounds.size.width - ;
_b_lineW = ; //画电池【左边电池】
UIBezierPath *pathLeft = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(b_x, b_y, _b_width, _b_height) cornerRadius:];
CAShapeLayer *batteryLayer = [CAShapeLayer layer];
batteryLayer.lineWidth = _b_lineW;
batteryLayer.strokeColor = [UIColor lightGrayColor].CGColor;
batteryLayer.fillColor = [UIColor clearColor].CGColor;
batteryLayer.path = [pathLeft CGPath];
[self.layer addSublayer:batteryLayer]; //画电池【右边电池箭头】
UIBezierPath *pathRight = [UIBezierPath bezierPath];
[pathRight moveToPoint:CGPointMake(b_x + _b_width+, b_y + _b_height/)];
[pathRight addLineToPoint:CGPointMake(b_x + _b_width+, b_y + _b_height * /)];
CAShapeLayer *layerRight = [CAShapeLayer layer];
layerRight.lineWidth = ;
layerRight.strokeColor = [UIColor lightGrayColor].CGColor;
layerRight.fillColor = [UIColor clearColor].CGColor;
layerRight.path = [pathRight CGPath];
[self.layer addSublayer:layerRight]; ///电池内填充
_batteryView = [[UIView alloc]initWithFrame:CGRectMake(b_x + ,b_y + _b_lineW, , _b_height - _b_lineW * )];
_batteryView.layer.cornerRadius = ;
_batteryView.backgroundColor = [UIColor colorWithRed:0.324 green:0.941 blue:0.413 alpha:1.000];
[self addSubview:_batteryView];
}
///控制电量显示
- (void)setBatteryValue:(NSInteger)value{
if (value<) {
_batteryView.backgroundColor = [UIColor redColor];
}else{
_batteryView.backgroundColor = [UIColor colorWithRed:0.324 green:0.941 blue:0.413 alpha:1.000];
} CGRect rect = _batteryView.frame;
rect.size.width = (value*(_b_width - _b_lineW * ))/;
_batteryView.frame = rect;
}
@end
落日熔金,暮云合璧,人在何处。染柳烟浓,吹梅笛怨,春意知几许。元宵佳节,融和天气,次第岂无风雨。来相召、香车宝马,谢他酒朋诗侣。中州盛日,闺门多暇,记得偏重三五。铺翠冠儿,捻金雪柳,簇带争济楚。如今憔悴,风鬟霜鬓,怕见夜间出去。不如向、帘儿底下,听人笑语。
iOS-电池图标【结合贝塞尔曲线控制电量显示】的更多相关文章
- SVG 贝塞尔曲线控制【方便设置】:贝塞尔曲线
http://dayu.pw/svgcontrol/
- iOS开发之画图板(贝塞尔曲线)
贝塞尔曲线,听着挺牛气一词,不过下面我们在做画图板的时候就用到贝塞尔绘直线,没用到绘制曲线的功能.如果会点PS的小伙伴会对贝塞尔曲线有更直观的理解.这篇博文的重点不在于如何用使用贝塞尔曲线,而是利用贝 ...
- iOS开发 贝塞尔曲线
iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00 博客园-所有随笔区 原文 http://www.cnblogs.com/moyunmo/p/ ...
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
... 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Con ...
- (转) IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- iOS - Quartz 2D 贝塞尔曲线
1.贝塞尔曲线 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支 ...
- iOS贝塞尔曲线(UIBezierPath)的基本使用方法
简介 UIBezierPath是对Core Graphics框架的一个封装,使用UIBezierPath类我们可以画出圆形(弧线)或者多边形(比如:矩形)等形状,所以在画复杂图形的时候会经常用到. 分 ...
- [置顶] IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)
1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点 ...
随机推荐
- urlrewritefilter 本地windowsxp 上正常 使用 ,但是 到linux服务器 上 则时好时坏 ,不起作用
可能原因: tuckey.org 无法正常访问 ,urlrewrite 配置 网络 dtd 无法下载 .. 先把 urlrewrite 日志 配置好: <filter> <filte ...
- DB2自增长ID
建议类似的应用采用sequence对象,将来的应用维护和数据迁移会很方便.考虑的因素较少. 对于序列可以使用nextval和prevval来获得下一个和上一个值:CREATE SEQUENCE seq ...
- OC调用Swift
Step by step swift integration for Xcode Objc-based project: Create new *.swift file (in Xcode) or a ...
- KBMMW 4.80.00 发布
一大波更新来了. 4.80.00 March 30 2015 Important notes (changes that may break existing code) ======= ...
- 2018.09.21 atcoder An Invisible Hand(贪心)
传送门 简单贪心啊. 这题显然跟t并没有关系,取差量最大的几组买入卖出就行了. 于是我们统计一下有几组差量是最大的就行了. 代码: #include<bits/stdc++.h> #def ...
- hdu-1067(最大独立集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 题意:一个男生集合和一个女生集合,给出两个集合之间一一对应的关系,求出两个集合中最大独立集的点数 ...
- Windows could not set the offline local information.Error code:0X80000001解决方法
我的笔记本是联想Y460(白色) 昨天在重装系统的时候遇到如下错误:Windows could not set the offline local information.Error code:0X8 ...
- js基础学习笔记(五)
多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便. 语法: switch(表达式) { case值1: 执行代码块 1 break; case值2: 执行代码 ...
- 201709021工作日记--CAS解读
CAS主要参考博文:classtag http://www.jianshu.com/p/473e14d5ab2d CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术 ...
- Berlin 10.1 支持 iPhone 4 (iOS v7.x)
http://www.cnblogs.com/onechen/p/5559017.html 原本在 Seattle 版本时,还能支持 iPhone 3GS (iOS v6.x), iPhone 4 ( ...