【问题标题】:MonoTouch: How to change control's location at runtime?MonoTouch:如何在运行时更改控件的位置?
【发布时间】:2013-11-26 00:15:17
【问题描述】:

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

imageView.Frame.X = 25;

但它没有任何作用。为什么?我对其他控件也有同样的问题。如何让它发挥作用?

【问题讨论】:

标签: uiview xamarin.ios


【解决方案1】:

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

imageView.Frame.X = 25

你实际上在做的是:

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

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

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

【讨论】:

  • 太好了。非常感谢!
【解决方案2】:

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

imageView.Frame.X = 25

你实际上在做的是:

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

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

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

【讨论】:

    【解决方案3】:

    // 代码很简单,一目了然

    dispatch_async(dispatch_get_main_queue(), ^{

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多