1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #import "BarView.h" #import "UIColor+RandomColor.h" @implementation BarView // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code NSArray *data=@[@25,@25,@50]; int count=data.count; CGFloat w=rect.size.width/(2*count-1); CGFloat h=0; CGFloat x=0; CGFloat y=0; CGFloat viewH=rect.size.height; //1.获取上下文 CGContextRef ctx=UIGraphicsGetCurrentContext(); for (int i=0;i<count;i++) { h=viewH*[data[i]intValue]/100.0; x=2*w*i; y=viewH-h; //2.拼接路径 UIBezierPath *path=[UIBezierPath bezierPathWithRect:CGRectMake(x, y, w, h)]; //3.添加路径到上下文 CGContextAddPath(ctx,path.CGPath); [[UIColor randomColor]set]; //4.渲染 CGContextFillPath(ctx); } } -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self setNeedsDisplay]; } @end
|