Как создать шестиугольник в iPhone / iPad - PullRequest
2 голосов
/ 22 декабря 2011

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

Пожалуйста, помогите мне что-нибудь об этом.

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

Ответы [ 2 ]

10 голосов
/ 22 декабря 2011

Подкласс 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);
}
0 голосов
/ 22 декабря 2011

Вы можете создать подкласс UIView и в его методе -(void)drawRect: нарисовать шестиугольник. Или используйте UIImageView с изображением шестиугольника

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...