2011-12-22 7 views
2

Я хочу сделать UIView, который первоначально имеет прямоугольную форму шестиугольника, которая будет использоваться в моем приложении.Как создать Шестиугольник в iPhone/iPad

Пожалуйста, помогите мне в этом.

Заранее спасибо.

ответ

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 с изображением шестиугольника

Смежные вопросы