MonoTouch从SubView设置位置

Ale*_*lex 2 .net c# value-type uiview xamarin.ios

嘿伙计们我是MonoTouch的新手并且有问题.谁能告诉我如何设置子视图的位置?我试过这个:

UIImageView imageview = new UIImageView(this.ImageSource);

this.AddSubview(imageview);

this.Subviews[0].Bounds.X = 30;
Run Code Online (Sandbox Code Playgroud)

我希望你们中的任何人都可以帮助我.

谢谢

pou*_*pou 6

在@Krumelur 旁边BoundsFrame(由@Krumelur提到)代码中存在.NET问题.

RectangleF是值类型(struct),而不是引用类型.如果不创建新实例(直接或间接),则无法在.NET中更改其属性/字段;

即属性getter Bounds始终返回一个新实例.因此,您在不同于Subviews[0]正在使用的实例上完成30的分配.

证明:

Console.WriteLine (Object.ReferenceEquals (this.Subviews[0].Bounds,
    this.Subviews[0].Bounds)); // prints 'False'
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下你需要做的是:

var bounds = this.Subviews[0].Bounds;
bounds.X = 30.0f;
this.Subviews[0].Bounds = bounds;
Run Code Online (Sandbox Code Playgroud)

因此新的RectangleF(struct)实例被分配回Bounds属性(使用您设置的新值).