gpt4 book ai didi

swift - 是否可以自定义 MKUserTrackingBarButtonItem?

转载 作者:可可西里 更新时间:2023-11-01 02:23:20 26 4
gpt4 key购买 nike

我正在使用 MKUserTrackingBarButtonItemMKMapView 上定位。我以编程方式将它作为 navigationItem 添加到导航 Controller 上。我的问题是:

  1. 我可以自定义 MKUserTrackingBarButtonItem 吗?示例:我的导航 Controller 有一个蓝色背景,我需要设置我的 MKUserTrackingBarButtonItem 外观符合导航 Controller 。相反,它在箭头周围显示一个白色方 block 。我会改变这一点。
  2. 是否可以将我的 MKUserTrackingBarButtonItem 从导航 Controller 中移出并直接放在我的 map 上?

谢谢

最佳答案

据我所知,您自定义用户跟踪按钮的能力有限。你可以改变颜色。为了让按钮离开导航栏,您必须将 UIToolbar 添加到您的 mapView,设置工具栏的框架大小,使其显示在您的首选位置,然后将 mkusertrackingbutton 作为一个项目添加到工具栏,具有灵活的空间适当添加以便使按钮正确居中。

以下是我的实现方式(到目前为止):

    func setupUserTrackingButton() {
let trackingButton: MKUserTrackingBarButtonItem = MKUserTrackingBarButtonItem.init(mapView: mapView)
trackingButton.customView?.tintColor = UIColor.black
trackingButton.style = UIBarButtonItemStyle.plain
trackingButton.customView?.size = CGSize(width: 50, height: 50)
let originPoint: CGPoint = CGPoint(x: mapView.width-70,y: mapView.height-85)
let lighterGreyColor: UIColor = UIColor(colorLiteralRed: 125, green: 125, blue: 125, alpha: 1.0)

//need to implement this rounded view in order to get the box to look consistent with the mkusertracking button API
let roundedSquare: UIView = UIView(frame: CGRect(origin: originPoint, size: CGSize(width: 50, height: 50)))
roundedSquare.backgroundColor = lighterGreyColor
roundedSquare.layer.cornerRadius = 5
roundedSquare.layer.masksToBounds = true

let toolBarFrame = CGRect(origin: CGPoint(x: 3, y: 3) , size: CGSize(width: 44, height: 44))
//You may have to subclass toolbar in order to get the right coloring
let toolbar = UIToolbar.init(frame: toolBarFrame)
let flex: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil)
toolbar.items = [flex, trackingButton, flex]

roundedSquare.addSubview(toolbar)
mapView.addSubview(roundedSquare)

}

否则,您可能必须对按钮进行子类化,并基本上构建其他功能,包括核心图形动画,这会有点麻烦。希望这会有所帮助。

编辑:从 iOS 11.0+ 开始,现在有一个 MKUserTrackingButton,它是 UIView 的子类。因此,如果您在 iOS 11 下不需要任何东西,只需使用按钮和子类或自定义您想要的一切。 Apple Docs for MKUserTrackingButton

关于swift - 是否可以自定义 MKUserTrackingBarButtonItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29421756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com