iOSは円角矢印表示を実現します。


APPでチャットのような内容の背景図を実現するには、円角と矢印を描く必要があります。多くの人が絵を使うことを選んでいますが、ビューで内容を制約するレイアウトをしていると、矢印のずれ量が正確に分かりません。CGContectRefを利用してどのように描きますか?
まず効果図を見てみましょう。

コードの実装:

- (void)drawRect:(CGRect)rect {
    float lw = 2; //     
    float aw = 4;//    
    float ah = 5;//    
    float r = 3;//     
    
    //          ,            x2?
    //                  ,                。
    float w = self.frame.size.width - lw;//       
    float h = self.frame.size.height - lw;//       
    
    //      
    CGContextRef context = UIGraphicsGetCurrentContext();
    //       
    CGContextSetLineWidth(context, lw);
    //    
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
 
    //       
    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
 
    CGContextMoveToPoint(context, 0, lw); //         
    CGContextAddArcToPoint(context, w, lw, w, r, r); //      
    CGContextAddArcToPoint(context, w , h, w-r, h, r); //      
    CGContextAddArcToPoint(context, aw, h, aw, h-r, r); //      
    CGContextAddLineToPoint(context, aw, ah); //      
    CGContextAddLineToPoint(context, 0, lw); //      
    
    CGContextDrawPath(context, kCGPathFillStroke); //        

    //             。           
    [super drawRect:rect];
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。