iPhone ясный CGContext

Я создаю круг с хорошей тенью с этим кодом (я использую MonoTouch.net для iPhone, ответы Objective C прекрасны, конечно),

        UIGraphics.PushContext (ctx);
        SizeF shadowSize = new SizeF (0f, -3f);
        ctx.SetRGBFillColor (194f / 255f, 212f / 255f, 238f / 255f, 1f);
        ctx.SetAllowsAntialiasing (true);
        ctx.SetShadowWithColor (shadowSize, 20, new CGColor (0.9f, 0.7f));
        RectangleF area = new RectangleF (35f, 15f, 210f, 210f);
        ctx.FillEllipseInRect (area);
        UIGraphics.PopContext ();

Затем я хочу добавить к нему дугу и строки. Когда я делаю, цвета и тень и т.д., кажется, слоняются поблизости? Как делают я 'запускаю новый' при рисовании моего UIView? (Это - все в том же UIView; я создаю изображение),

5
задан Ian Vink 19 January 2010 в 00:26
поделиться

2 ответа

Если вы хотите очистить все, что нарисовано, так что у вас есть пустой холст, попробуйте CGContextClearrect , прежде чем делать что-либо.

Но я думаю, что вы имеете в виду, что вы хотите, чтобы тень, заполнить цвет и т. Д. Чтобы применить только к этому эллипсу, а не к тому, что вы рисуете позже. Для этого вы хотите снова вызвать одни и те же методы настройки состояний, но с разными аргументами. Например, CGContextsetshadowWithColor ожидает теневого цвета. Но если вы пройдете NULL для этого аргумента, он отключит затенение.

См. Также CGContextsetshadow Документация , которая имеет записку обо всех способах отключения затенения. Выберите лучший для вас.

Я думаю, что ваша главная проблема заключается в том, что вы не используете преимущества отличной документации Apple. Я собираю это monotouch.net по существу на картах appive-c apis к модулям .net с аналогичными или идентичными именами символов. Таким образом, с быстрым поиском Google вы сможете найти соответствующую документацию в ссылочной библиотеке ОС iPhone.

13
ответ дан 18 December 2019 в 13:14
поделиться

Прежде чем мы начнем рисовать, сохранить состояние:

CGContextSaveGState(ctx);

Тогда после того, как мы закончили, верните государство к тому, что он был в начале:

CGContextRestoreGState(ctx);
1
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: