MonoTouch:如何在运行时更改控件的位置?

时间:2011-12-14 04:11:57

标签: uiview xamarin.ios

我想在运行时更改UIImageView的位置。在IB中,我可以更改X坐标以重新定位它。所以,我尝试了这段代码:

imageView.Frame.X = 25;

但它没有任何效果。为什么?其他控件也有同样的问题。如何使它工作?

3 个答案:

答案 0 :(得分:3)

Frame属性是一个值类型,这意味着如果你这样做:

imageView.Frame.X = 25

你实际在做的是:

var temp = imageView.Frame;
temp.X = 25;

该值永远不会到达imageView。对于值类型,您必须分配完全构造的类型,例如:

var current = imageView.Frame; current.X = 25; imageView.Frame =当前;

答案 1 :(得分:0)

Frame属性是一个值类型,这意味着如果你这样做:

imageView.Frame.X = 25

你实际在做的是:

var temp = imageView.Frame; temp.X = 25;

该值永远不会到达imageView。对于值类型,您必须分配完全构造的类型,例如:

var current = imageView.Frame; current.X = 25; imageView.Frame =当前;

答案 2 :(得分:0)

//代码非常简单且不言自明

  

dispatch_async(dispatch_get_main_queue(),^ {

    self.myimageView.frame = CGRectMake(140, 70, 140, 128);


});

使用> dispatch_async(dispatch_get_main_queue(),^ {我使代码在主队列中运行,而不是在后台运行。