gpt4 book ai didi

drawing - 为什么 UIGraphics.GetCurrentContext 返回 null?

转载 作者:行者123 更新时间:2023-12-02 16:05:37 26 4
gpt4 key购买 nike

我有一个 UIViewController,其中包含 2 个 subview (从 UIView 派生的类),它们使用 UIGraphics.GetCurrentContext 进行自定义绘图。该绘图在应用程序启动时工作正常。我像这样连接 View Controller 的 ViewDidLoad() 中的 subview :

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);

我需要第一个 subview 来根据第二个 subview 的功能绘制自定义内容。当第二个 subview 获得 TouchesEnded 时,我在第一个 subview 中调用一个函数来显示新数据。第一个 subview 中的绘图使用 UIGraphics.GetCurrentContext,它在此特定工作流程中获取 null。下面是它如何绘制的示例:

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 仅在此工作流程中返回 null,而在启动时不返回 null?还有其他方法可以达到同样的结果吗?我是不是错过了什么?

最佳答案

你不应该这样做,你想做的是覆盖:

       public virtual void Draw (System.Drawing.RectangleF rect)

UIView 子类上的方法,并在引发该方法时(响应 SetNeedsDisplay ())执行所有绘图。

关于drawing - 为什么 UIGraphics.GetCurrentContext 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com