有人能告诉我如何在Interface Builder中的工具栏中添加MKUserTrackingBarButtonItem
吗?我的UIBarButtonItem
上有一个UIToolbar
我的类已设置为MKUserTrackingBarButtonItem,但这似乎不是正确的方法。
我有以下属性:
@property (nonatomic, strong) IBOutlet MKUserTrackingBarButtonItem *trackingButton;
我可以使用以下代码在代码中添加按钮:
trackingButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:mapView];
NSMutableArray *items = [[NSMutableArray alloc] initWithArray:toolbar.items];
[items insertObject:trackingButton atIndex:0];
[toolbar setItems:items];
但我只是错过了如何在IB中做到这一点。
答案 0 :(得分:9)
不幸的是,由于MKUserTrackingBarButtonItem
的指定初始化程序,在IB中似乎不可能。您必须实例化它并以编程方式将其添加到工具栏中。正如您所做的那样。
答案 1 :(得分:4)
您只需添加UIBarButtonItem
,然后在身份检查器/ IB侧栏中的类字段中将其设为MKUserTrackingBarButtonItem
,然后将该按钮添加为IBOutlet,然后将其显示给您必须以编程方式设置mapView
属性。使用swift,可以在didSet
:
@IBOutlet weak var trackingButton: MKUserTrackingBarButtonItem! {
didSet {
trackingButton.mapView = self.mapView;
}
}
或者您可以将mapView
作为IBOutlet
进行子类化,以便在IB中连接它:
class UserTrackingBarButtonItem : MKUserTrackingBarButtonItem {
@IBOutlet override var mapView : MKMapView? {
get {
return super.mapView;
}
set {
super.mapView = newValue;
}
}
}