Xamarin.ios Monotouch自定义UIView

Xamarin.ios Monotouch自定义UIView,xamarin.ios,Xamarin.ios,我希望有人能帮助解决这个问题,我正在使用monotouch与xib文件 我正在尝试创建从uiview派生的子视图。在IB中,我创建一个类,将其类型设置为自定义类的类型,然后将所有IBOutlet链接到自定义类(我认为这就是错误所在,因为我怀疑这应该是文件所有者) 下面是一个IB.h文件示例 @interface ActivityUtilityView : UIView { UILabel *_ActivityLabel; UILabel *_CaptionLabel; } @properrty

我希望有人能帮助解决这个问题,我正在使用monotouch与xib文件

我正在尝试创建从uiview派生的子视图。在IB中,我创建一个类,将其类型设置为自定义类的类型,然后将所有IBOutlet链接到自定义类(我认为这就是错误所在,因为我怀疑这应该是文件所有者)

下面是一个IB.h文件示例

@interface ActivityUtilityView : UIView {
UILabel *_ActivityLabel;
UILabel *_CaptionLabel;
}

@properrty (nonatomic, retain) IBOutlet UILabel * ActivityLabel;
@properrty (nonatomic, retain) IBOutlet UILabel * CaptionLabel;

@End
在应用程序代码中,需要在运行时使用加载此视图

var intptr = NSBundle.MainBundle.LoadNib("ActivityUtilityView",parent_controller,null).ValueAt(0);
m_ActivityView = new ActivityView(intptr);
第一个问题是没有一个iboutlet被实例化

第二个问题是,据我所知,视图被创建了两次

请问有人能帮忙吗

编辑

我发现一半的问题是,在显示视图之前,插座不会被实例化


那么,如何强制显示子视图呢?

我找到了一个可行的解决方案

m_ActivityView = Activator.CreateInstance<ActivityUtilityView>();
var view = NSBundle.MainBundle.LoadNib("ActivityUtilityView",m_ActivityView,null);
m_ProgressView = Runtime.GetNSObject(views.ValueAt(0) as ActivityUtilityView;
m_ActivityView=Activator.CreateInstance();
var view=NSBundle.MainBundle.LoadNib(“ActivityUtilityView”,m_ActivityView,null);
m_ProgressView=Runtime.GetNSObject(views.ValueAt(0)作为ActivityUtilityView;
在显示视图之前,使用IntPtr构造函数创建视图不会实例化IBOutlets。此方法看起来很简单

为了澄清由于后台工作线程上的争用条件而导致的问题