skiasharp - 用什么方法告诉画布使用 Skiasharp.Views.iOS 重绘自己?
问题描述
技术:Xamarin.Forms、Xamarin.iOS 和 C#
问题:我正在尝试使用 Skiasharp.Views.Forms 到 Skiasharp.Views.iOS 找到等效的 SKCanvasView.InvalidateSurface()。似乎没有等价物。在我的代码片段中的注释下方是我试图在 Skiasharp.Views.iOS 中找到等效方法的方法。
using System;
using System.Diagnostics;
using Xamarin.Forms;
using SkiaSharp;
using SkiaSharp.Views.Forms;
namespace SkiaSharpFormsDemos.Basics
{
public class ExpandingCirclesPage : ContentPage
{
protected override void OnAppearing()
{
base.OnAppearing();
pageIsActive = true;
stopwatch.Start();
Device.StartTimer(TimeSpan.FromMilliseconds(50), () =>
{
t = (float)(stopwatch.Elapsed.TotalMilliseconds % cycleTime / cycleTime);
/*
* What's the equivalent of
* SKCanvasView.InvalidateSurface()
* using Skiasharp.Views.Forms to
* Skiasharp.Views.iOS.
*/
canvasView.InvalidateSurface();
if (!pageIsActive)
{
stopwatch.Stop();
}
return pageIsActive;
});
}
}
解决方案
在实例上使用 iOS 本机UIView.SetNeedsDisplay
方法。SKCanvasView
这应该引发PaintSurface
事件并重绘视图。
推荐阅读
- c# - 拦截耳机上的特殊键(挂机/挂机)
- c++ - 我想打开一个文件并只获取该文件的一半文本,我不想获取所有内容
- yocto - KVM 模块未添加到映像目标
- django - 自定义 Django Admin 时出现 Django Fieldsets 错误
- r - 如何将构面标签 (strip.background) 的颜色更改为与其条形相同?
- java - 在链接列表的末尾插入项目时遇到问题 Java 不起作用
- rust - 如何解决 Rust 在方法设计中的“使用移动值”?
- bash - 仅针对子目录中的现有目录批量删除 (rm -rf)
- java - java - 如何从Java Spring Boot中的请求标头获取不记名令牌?
- c# - 如何通过单击按钮打开“openFileDialog”?