If you don't mind using layers, something like this might work for you:
//create triangle path UIBezierPath* path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointMake(0, 30)]; [path addLineToPoint:CGPointMake(100, 30)]; [path addLineToPoint:CGPointMake(100, 0)]; [path addLineToPoint:CGPointMake(0, 30)]; //apply path to shapelayer CAShapeLayer* greenPath = [CAShapeLayer layer]; greenPath.path = path.CGPath; [greenPath setFillColor:[UIColor greenColor].CGColor]; [greenPath setStrokeColor:[UIColor blueColor].CGColor]; greenPath.frame=CGRectMake(0, 0,100,30); //add shape layer to view layer [[self layer] addSublayer:greenPath];
source share