Нарисовать линию с увеличением ширины линии на iPhone

#objective-c #ios #quartz-graphics

#objective-c #iOS #quartz-графика

Вопрос:

Я рисую линию на iOS, проводя контур на CALayer. Как я могу обвести эту линию с увеличением ширины линии (ширины обводки), чтобы левый конец линии был тоньше правого конца? (Это действительно должна быть линия, а не фигура или замкнутый контур, поскольку я собираюсь использовать свойство strokeEnd .)

Спасибо за вашу помощь!

Ответ №1:

Используйте функцию рисования. Поначалу к этому довольно неприятно привыкать, но оно выполняет свою работу. Если вам нужна дополнительная помощь, просто оставьте комментарий

 -(void)draw{
     float lineHeight = 5;//change this as you see fit, like set it equal to an incrementing/decrementing variable of your choice...
     glEnable(GL_LINE_SMOOTH);
     glLineWidth(lineHeight); // change this as you see fit
     glColor4ub(255,255,255,255); // change these as you see fit :)
     ccDrawLine(ccp(10,310), ccp(30,310));  // these numbers are probably off, you'll   have to mess with these to get it in the right position :)
        [super draw];
        }
 

Комментарии:

1. Правильно ли я думаю, что это как-то связано с cocos2D? Я использую QuartzCore CALayer / CAShapeLayer, а не CCLayer..

2. О, черт, извините, для этого вам может понадобиться cocos2d … извините, я думал, что это часть xcode.

3. Есть ли другое возможное решение, помимо использования cocos2D?

4. Hrm… вы могли бы установить ширину в переменную, которая изменяется с помощью NSTimer.