无法重写 UIView.Draw 方法
本文关键字:Draw 方法 UIView 重写 | 更新日期: 2023-09-27 18:33:17
我需要覆盖 draw 方法,但我收到错误消息:
Draw(System.Drawing.PointF)' 被标记为覆盖,但没有找到合适的方法来覆盖 (CS0115)。
这就是我所做的:我创建一个新项目,添加一个空类并尝试覆盖。
代码如下:
using System;
using UIKit;
using System.Drawing;
using CoreGraphics;
using CoreImage;
using Foundation;
using CoreAnimation;
namespace Test
{
public class Tester : UIView
{
CGPath path;
public override void Draw (PointF rect){
base.Draw ();
}
public Tester ()
{
path = new CGPath ();
}
}
}
实际上,我正在尝试Xamarin的教程。http://developer.xamarin.com/guides/ios/application_fundamentals/graphics_animation_walkthrough/
问题是你用统一API创建了一个程序(参见顶部的"使用CoreImage")。 在统一 API 中,我们不再使用 PointF、SizeF 或 RectangleF,因为它们是 32 位结构,因此它们不适用于 32/64 位模式。
在Unified中,你需要使用"CGRect"而不是"RectangleF"。
因此,要修复您的程序,您所要做的就是将"RectangleF"替换为"CGRect"
这些教程目前反映了经典 API,一旦我们正式发布 Unified 的最终版本,它们将被切换。
不能重写不同的方法。原始方法没有参数。如果要重写 Draw 方法,则需要删除 Draw 函数参数。