CGContextDrawPath для двух внутренних и внешних прямоугольников разных цветов

Я использую приведенный ниже код в drawRect

CGContextSaveGState(context);

CGMutablePathRef outerPath=[self createPath:rect];

CGMutablePathRef innnerPath=[self createPath:UIEdgeInsetsInsetRect(rect, UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)];

CGPathCloseSubpath(outerPath);

CGContextAddPath(context, outerPath);
    CGContextSetFillColorWithColor(context, [UIColor colorWithRed:249.0/255.0 green:38.0/255.0 blue:1.0/255.0 alpha:1.0].CGColor);

CGContextEOFillPath(context);
CGContextDrawPath(context, kCGPathFill);

CGContextAddPath(context, innnerPath);
CGContextSetFillColorWithColor(context, [UIColor colorWithRed:50.0/255.0 green:213.0/255.0 blue:1.0 alpha:0.4].CGColor);
CGContextDrawPath(context, kCGPathFill);

CGContextRestoreGState(context);

Но, поскольку я использую 0,4 альфа для внутреннего цвета, внутренний цвет становится коричневым.

Как я могу получить что-то подобное, как показано ниже?

введите здесь описание изображения


person NNikN    schedule 06.02.2014    source источник
comment
Нет изображения «показать внизу». Пожалуйста, отредактируйте свой вопрос, чтобы включить изображение или ссылку на изображение.   -  person rob mayoff    schedule 06.02.2014


Ответы (1)


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

person user1118321    schedule 06.02.2014
comment
Это хорошее решение. Но если мне нужен глянцевый эффект для внутреннего прямоугольника, то это будет самый простой способ. - person NNikN; 06.02.2014
comment
Я не уверен, что понимаю. Какой глянцевый эффект вы имеете в виду? - person user1118321; 06.02.2014