iOS, Xamarin, UIView, Draw, animation dinámica no funciona

Estoy usando MonoDevelop y Xamarin para crear una aplicación para iOS.

Tengo una vista que se ve así:

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

Espero que mi image se mueva. Pero como resultado, solo tengo una image estática inicial. ¿Alguien puede sugerir un enfoque de cómo hacer una animation como la descrita?

Sugiero que modifique su código de la siguiente manera:

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

Creo que parte de su problema fue que el controller Elapsed del timer se ejecuta en un subprocess separado que el subprocess principal de la interfaz de usuario. Además, será más eficiente no volver a crear UIImageView cada vez.