我的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.
我(想)我理解这个错误意味着什么,但是如果在本地代码的其他地方调用它,我将如何在主线程上调用它?
答案 0 :(得分:2)
您正在调用的UIKIt方法是UIScreen.MainScreen。
简单的解决方法是在类变量中预取UIScreen.MainScreen,并在AdMarvelViewFrame中使用类变量。