【发布时间】:2013-11-26 00:15:17
【问题描述】:
我想在运行时更改 UIImageView 的位置。在 IB 中,我可以更改 X 坐标来重新定位它。所以,我尝试了这段代码:
imageView.Frame.X = 25;
但它没有任何作用。为什么?我对其他控件也有同样的问题。如何让它发挥作用?
【问题讨论】:
标签: uiview xamarin.ios
我想在运行时更改 UIImageView 的位置。在 IB 中,我可以更改 X 坐标来重新定位它。所以,我尝试了这段代码:
imageView.Frame.X = 25;
但它没有任何作用。为什么?我对其他控件也有同样的问题。如何让它发挥作用?
【问题讨论】:
标签: uiview xamarin.ios
Frame 属性是一个值类型,这意味着如果你这样做:
imageView.Frame.X = 25
你实际上在做的是:
var temp = imageView.Frame;
temp.X = 25;
该值永远不会到达 imageView。对于值类型,您必须分配一个完全构造的类型,例如:
var current = imageView.Frame; 当前.X = 25; imageView.Frame = 当前;
【讨论】:
Frame 属性是一个值类型,这意味着如果你这样做:
imageView.Frame.X = 25
你实际上在做的是:
var temp = imageView.Frame; 温度.X = 25;
该值永远不会到达 imageView。对于值类型,您必须分配一个完全构造的类型,例如:
var current = imageView.Frame; 当前.X = 25; imageView.Frame = 当前;
【讨论】:
// 代码很简单,一目了然
dispatch_async(dispatch_get_main_queue(), ^{
self.myimageView.frame = CGRectMake(140, 70, 140, 128);
});
通过使用 >dispatch_async(dispatch_get_main_queue(), ^{ 我使代码在主队列中运行,而不是在后台运行。
【讨论】: