在Xamarin.IOS C#中强制Draw()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Xamarin.IOS C#中强制Draw()相关的知识,希望对你有一定的参考价值。
我正在研究Xamarin.ios项目,我希望在TouchBegan和UIView的TouchEnd上更新屏幕(通过调用覆盖Draw()方法)。
public override void TouchesBegan(NSSet touches, UIEvent evt)
{
base.TouchesBegan(touches, evt);
SetNeedsDisplay();
}
public override void TouchesEnded(NSSet touches, UIEvent evt)
{
base.TouchesEnded(touches, evt);
SetNeedsDisplay();
}
public override void Draw(CGRect rect)
{
//draw in CGContext
}
仅在我点击时第一次从TouchBegan调用Draw()方法。之后,在TouchEnd完成之前,不会调用Draw。
有没有办法在我的TouchBegan上强制Draw(在TouchEnd被触发之前)。与android中的Invalidate()类似的东西。
这是因为,我在TouchBegan和TouchEnd中绘制了不同的上下文。因此,我希望在每次触摸事件后确定调用Draw方法。
任何帮助表示赞赏。谢谢。
答案
TouchesBegan只是在一个或多个手指触摸屏幕时触发。如果你想在触摸屏幕并移动手指时调用Draw方法,请添加方法TouchesMoved:
public override void TouchesMoved(NSSet touches, UIEvent evt)
{
base.TouchesMoved(touches, evt);
SetNeedsDisplay();
}
然后当你的手指离开UIView时,你可以在TouchesEnded结束你的绘画。
以上是关于在Xamarin.IOS C#中强制Draw()的主要内容,如果未能解决你的问题,请参考以下文章
xamarin ios 应用程序因 CBCentralManager 崩溃
C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()