Swiftui 快捷键操作在GMSMapView上不起作用
我试图让我自己的自定义按钮浮动在GMSMapView上。按钮在GMSMapView上绘制,但不会触发按钮操作。浮动按钮是用SwiftUI编写的,如下所示:Swiftui 快捷键操作在GMSMapView上不起作用,swiftui,google-maps-sdk-ios,gmsmapview,Swiftui,Google Maps Sdk Ios,Gmsmapview,我试图让我自己的自定义按钮浮动在GMSMapView上。按钮在GMSMapView上绘制,但不会触发按钮操作。浮动按钮是用SwiftUI编写的,如下所示: struct MyLocationView: View { @ObservedObject var viewController: ViewController var body: some View { ZStack { Button(action: {
struct MyLocationView: View {
@ObservedObject var viewController: ViewController
var body: some View {
ZStack {
Button(action: {
print("Hello")
self.viewController.myLocationButtonPressed = !self.viewController.myLocationButtonPressed
}) {
ZStack {
Circle()
.foregroundColor(.black)
.frame(width: 60, height: 60)
.shadow(radius: 10)
Image(systemName: viewController.myLocationButtonPressed ? "location.fill" : "location")
.foregroundColor(.blue)
}
}
}
}
}
这是我的视图控制器
import UIKit
import SwiftUI
import GoogleMaps
class ViewController: UIViewController, ObservableObject {
@Published var myLocationButtonPressed: Bool = false
@IBOutlet var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
// My Location Button
let myLocationView = MyLocationView(viewController: self)
let hostingController = UIHostingController(rootView: myLocationView)
hostingController.view.backgroundColor = .blue
addChild(hostingController)
hostingController.view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(hostingController.view)
hostingController.didMove(toParent: self)
NSLayoutConstraint.activate([
hostingController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
hostingController.view.topAnchor.constraint(equalTo: view.topAnchor),
hostingController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
hostingController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
}
知道为什么按钮操作在这里不起作用吗?我也有类似的问题。你找到解决办法了吗?不幸的是没有。我最终在UIKit中创建了自定义按钮。:/你有什么问题?自从我在这里和你联系后,我有一个问题已经解决了。对我来说,这是按钮的大小,只需添加一个padding()即可解决: