2011-12-22 7 views
2

UIView私のアプリケーションでは、もともとは六角形の矩形であるために作りたいと思っています。iPhone/iPadでHexagonを作成するには

私はこれについて何か助けてください。

ありがとうございます。

答えて

9

サブクラスUViewの画像とし、そのような六角描画するdrawRectをオーバーライドします。

- (void)drawRect:(CGRect)rect 
{  
    float polySize = 60; // change this 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(context); 

    CGAffineTransform t0 = CGContextGetCTM(context); 
    t0 = CGAffineTransformInvert(t0); 
    CGContextConcatCTM(context, t0); 

    //Begin drawing setup 
    CGContextBeginPath(context); 
    CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); 
    CGContextSetLineWidth(context, 2.0); 

    CGPoint center; 

    //Start drawing polygon 
    center = CGPointMake(160, 90.0); 
    CGContextMoveToPoint(context, center.x, center.y + polySize); 
    for(int i = 1; i < 6; ++i) 
    { 
     CGFloat x = polySize * sinf(i * 2.0 * M_PI/6); 
     CGFloat y = polySize * cosf(i * 2.0 * M_PI/6); 
     CGContextAddLineToPoint(context, center.x + x, center.y + y); 
    } 

    //Finish Drawing 
    CGContextClosePath(context); 
    CGContextDrawPath(context, kCGPathStroke); 
    CGContextRestoreGState(context); 
} 
+2

こんにちは、私はそこにコードをテストしてみたが、これはまさにのUIViewをしません六角形のフレームの場合、これは単に「フレーム」の内側に六角形を描きます。 – IssamTP

0

UIViewのサブクラスを作成し、-(void)drawRect:メソッドで六角形を描画できます。または使用UIImageView六角

関連する問題