gpt4 book ai didi

iOS、Xamarin、UIView、Draw、动态动画不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:47 26 4
gpt4 key购买 nike

我正在使用 MonoDevelop 和 xamarin 来创建 iOS 应用程序。

我有一个看起来像这样的 View :

public class MyView: UIView 
{
private Timer _t = new Timer(1000);
private int _i = 0;

public MyView()
{
_t.Elapsed += (sender, e) => {
_i = (_i + 1) % 100;
this.Draw(new Rectangle(0, 0, 110, 110));
};
_t.Enabled = true;
}

public override void Draw(RectangleF rect)
{
base.Draw(rect);
var uiImage = UIImage.FromFile("myImage");
var uiImageView = new UIIMageView(new Rectangle(_i, 0, 10, 10));
uiImageView.Image = uiImage;
AddSubView(uiIMageView);
}
}

我希望我的形象会动起来。但结果我只有初始静态图像。有人可以建议如何制作所描述的动画吗?

最佳答案

我建议像这样修改您的代码:

public MyView()
{

var uiImage = UIImage.FromFile("myImage");
var uiImageView = new UIIMageView(new Rectangle(0, 0, 10, 10));
uiImageView.Image = uiImage;
AddSubView(uiIMageView);

_t.Elapsed += (sender, e) => {
_i = (_i + 1) % 100;
this.Draw(new Rectangle(_i, 0, 110, 110));
};
_t.Enabled = true;
}

public override void Draw(RectangleF rect)
{
base.Draw(rect);
InvokeOnMainThread(()=>{
uiImageView.Frame = rect;
});
}

我认为您的部分问题是计时器 Elapsed 处理程序在与主 UI 线程不同的线程上运行。另外,不要每次都重新创建 UIImageView 会更有效率。

关于iOS、Xamarin、UIView、Draw、动态动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777041/

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