我想在运行时更改UIImageView的位置。在IB中,我可以更改X坐标以重新定位它。所以,我尝试了这段代码:
imageView.Frame.X = 25;
但它没有任何效果。为什么?其他控件也有同样的问题。如何使它工作?
答案 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(),^ {我使代码在主队列中运行,而不是在后台运行。