IOS 绘制三角形的实例详解

先上效果图


上面三角形的代码

- (void)ljTestView
{
  CGPoint piont1;
  piont1.x = 170;
  piont1.y = 100;

  CGPoint piont2;
  piont2.x = 50;
  piont2.y = 200;

  CGPoint piont3;
  piont3.x = 220;
  piont3.y = 200;

  ljDrawRect *_ljView = [[ljDrawRect alloc]initStartPoint:piont1 middlePoint:piont2 endPoint:piont3 color:[UIColor redColor]];
  _ljView.frame = CGRectMake(0, 64, kDEVICEWIDTH, kDEVICEHEIGHT - 64);
  _ljView.backgroundColor = [UIColor yellowColor];
  [self.view addSubview:_ljView];
}

画三角形的类

#import "ljDrawRect.h"

@interface ljDrawRect ()
{
  CGPoint _startPoint;
  CGPoint _middlePoint;
  CGPoint _endPoint;
  UIColor *_color;
}
@end

@implementation ljDrawRect

#pragma mark -
#pragma mark - method
- (instancetype)initStartPoint:(CGPoint)startPoint
          middlePoint:(CGPoint)middlePoint
           endPoint:(CGPoint)endPoint
             color:(UIColor*)color
{
  self = [super init];

  if (self)
  {
    _startPoint = startPoint;
    _middlePoint = middlePoint;
    _endPoint = endPoint;
    _color = color;
    self.backgroundColor = [UIColor clearColor];
  }
  return self;
}

- (void)drawRect:(CGRect)rect
{
  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextBeginPath(context);//标记
  CGContextMoveToPoint(context, _startPoint.x, _startPoint.y);
  CGContextAddLineToPoint(context,_middlePoint.x, _middlePoint.y);
  CGContextAddLineToPoint(context,_endPoint.x, _endPoint.y);
  CGContextClosePath(context);//路径结束标志,不写默认封闭
  [_color setFill]; //设置填充色
  [_color setStroke];//边框也设置为_color,否则为默认的黑色
  CGContextDrawPath(context, kCGPathFillStroke);//绘制路径path
}

@end

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

02-01 19:59