从Xamarin Binding调用UIKit方法

时间:2014-11-13 05:51:01

标签: c# ios xamarin.ios xamarin uikit

我的Xamarin项目有一个广告SDK绑定。绑定在这里:https://github.com/bbhsu2/XamarinAdMarvelBinding

我的问题来自方法:

[Export("adMarvelViewFrame")]
RectangleF AdMarvelViewFrame();

在我班上我实现它:

[Export("adMarvelViewFrame")]
public RectangleF AdMarvelViewFrame()
{
    return new RectangleF(0.0f, 0.0f, UIScreen.MainScreen.Bounds.Width, 250.0f);
}

然而,当视图加载时,我收到错误:

UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread.

我(想)我理解这个错误意味着什么,但是如果在本地代码的其他地方调用它,我将如何在主线程上调用它?

1 个答案:

答案 0 :(得分:2)

您正在调用的UIKIt方法是UIScreen.MainScreen。

简单的解决方法是在类变量中预取UIScreen.MainScreen,并在AdMarvelViewFrame中使用类变量。