2017-07-24 147 views
0

我需要幫助來繪製iOS中的梯形形狀。如何在iOS中繪製梯形形狀?

我使用下面的代碼繪製粉紅色的形狀,但它不工作:

UIBezierPath* trianglePath = [UIBezierPath bezierPath]; 
[trianglePath moveToPoint:CGPointMake(0, 0)]; 
[trianglePath addLineToPoint:CGPointMake(topView.frame.size.width, topView.frame.size.height/2)]; 
[trianglePath addLineToPoint:CGPointMake(100, topView.frame.size.height/2)]; 

CAShapeLayer *triangleMaskLayer = [CAShapeLayer layer]; 
[triangleMaskLayer setPath:trianglePath.CGPath]; 

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,topView.frame.size.height-150, 200, 150)]; 
view.layer.mask = triangleMaskLayer; 
[self.view addSubview:view]; 

怎樣繪製的粉紅色造型? enter image description here

+0

您沒有使用'triangleMaskLayer'。 – Larme

+0

抱歉更新了@Larme的錯字問題 –

回答

2
-(void)TriangularPinkView{ 
    UIBezierPath *path = [UIBezierPath bezierPath]; 
    CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    shapeLayer.strokeColor = [[UIColor redColor] CGColor]; 
    shapeLayer.lineWidth = 0.5; 

    CGPoint start = CGPointMake(CGRectGetMinX(self.pinkView.frame), CGRectGetMidY(self.pinkView.frame)+CGRectGetHeight(self.pinkView.frame)*.25); 
    [path moveToPoint:start]; 
    [path addLineToPoint:CGPointMake(CGRectGetMaxX(self.pinkView.frame), CGRectGetMidY(self.pinkView.frame))]; 
    [path addLineToPoint:CGPointMake(CGRectGetMaxX(self.pinkView.frame), CGRectGetMaxY(self.pinkView.frame))]; 
    [path addLineToPoint:CGPointMake(CGRectGetMinX(self.pinkView.frame), CGRectGetMaxY(self.pinkView.frame))]; 


    shapeLayer.path = [path CGPath]; 
// shapeLayer.fillRule = kCAFillRuleEvenOdd; 
    shapeLayer.fillColor = [[UIColor redColor] CGColor]; 

    [self.view.layer addSublayer:shapeLayer]; 
}