У меня есть UIViewController, который содержит 2 подпредставления (классы, производные от UIView), которые выполняют пользовательское рисование с помощью UIGraphics.GetCurrentContext.Рисунок работает нормально при запуске приложения.Я подключаю подпредставления в ViewDidLoad () контроллера вида так:
DigitalNumberView dnv = new DigitalNumberView();
dnv.Frame = new System.Drawing.RectangleF(10, 10, 750, 190);
View.AddSubview(dnv);
CircleView tuner = new CircleView(dnv);
tuner.Frame = new System.Drawing.RectangleF(570, 220, 190, 190);
View.AddSubview(tuner);
Мне нужно первое подпредставление, чтобы рисовать пользовательские вещи в зависимости от того, что делает второе подпредставление.Когда второе подпредставление получает TouchesEnded, я вызываю функцию в первом подпредставлении, которая отображает новые данные.Рисунок в первом подпредставлении использует UIGraphics.GetCurrentContext, который становится нулевым в этом конкретном рабочем процессе.Вот пример того, как он рисует:
SetNeedsDisplay();
CGContext context = UIGraphics.GetCurrentContext ();
if (null == context) {
Console.WriteLine("Retrieved null CGContext");
return;
}
RectangleF r = new RectangleF(25, 10, 180, 180);
ClearNumber(context, r);
DisplayNumber(context, f, r);
UIGraphics.EndImageContext();
Почему UIGraphics.GetCurrentContext возвращает ноль только в этом рабочем процессе, но не при запуске?Есть ли другой способ достичь этого же результата?Я что-то пропустил?