正在防触摸模式状态,无法操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正在防触摸模式状态,无法操作相关的知识,希望对你有一定的参考价值。
防误触模式是为了防止手机在口袋中由于挤压或滑动引起的误操作而设置的。
开关路径:
EMUI 3.1:设置>全部设置>智能辅助>更多>防误触模式,可以开启或关闭。
EMUI 4.0及以上版本:设置>智能辅助>防误触模式,可以开启或关闭。
此外,请确认点亮手机屏幕时有无异物遮挡了手机顶端,确保无遮挡情况下操作手机。
来自:求助得到的回答 参考技术A 请允许我用22种编程语言,祝大家新年快乐C语言:printf("祝大家新年快乐");
C++ : cout<<"祝大家新年快乐";
OC: NSLog(@"祝大家新年快乐"); QBasic : Print "祝大家新年快乐"
Asp : Response.Write "祝大家新年快乐"
php : echo "祝大家新年快乐";
JScript: alert("祝大家新年快乐")
VBScript:MsgBox "祝大家新年快乐"
Jscript:document.write("祝大家新年快乐")
Delphi: ShowMessage('祝大家新年快乐!');
VB: Print "祝大家新年快乐!"
VC: MessageBox("祝大家新年快乐!");
shell: echo 祝大家新年快乐
perl: print '祝大家新年快乐'
java: System.out.println("祝大家新年快乐");
powerBuilder:messagebox("祝大家新年快乐")
C#:System.Console.WriteLine("祝大家新年快乐!")
COBOL:DISPLAY '祝大家新年快乐!
Python:print("祝大家新年快乐!")
AS:Alert.show("祝大家新年快乐!");
Foxpro: ? 【祝大家新年快乐!】
DOS 批处理: echo 祝大家新年快乐
易语言:信息框(“祝大家新年快乐!”,,64) 参考技术B 可以按返回键 参考技术C igxfxfuz
当用户在 SwiftUI 中触摸 GoogleMaps 的标记时如何更改 UI 状态?
【中文标题】当用户在 SwiftUI 中触摸 GoogleMaps 的标记时如何更改 UI 状态?【英文标题】:How to change UI state when user touch GoogleMaps' Marker in SwiftUI? 【发布时间】:2020-09-03 07:24:30 【问题描述】:这个问题是关于 SwiftUI 的。
我正在尝试显示地图并允许用户触摸任何可用的标记。发生这种情况时,我希望更改视图上的文本,以反映该用户的操作。
经过大量搜索,我认为解决方案可能接近 Observable 协议,但我就是想不出正确的方法。这是我的代码:
struct Home: View
// Here's the attribute I want to be changed when user touches the marker
var selectedMarker: GMSMarker?
var body: some View
VStack(spacing: 0)
// Condition to be applied when user touches the marker
if (selectedMarker == nil)
Text("No marker selected").padding()
else
Text("Now, there's a marker selected").padding()
GoogleMapsHome()
.navigationBarBackButtonHidden(true)
.navigationBarTitle(Text("Marker question"), displayMode: .inline)
struct Home_Previews: PreviewProvider
static var previews: some View
Home()
这是 GoogleMaps 的定义:
struct GoogleMapsHome: UIViewRepresentable
private let zoom: Float = 18
// Just for didactic purposes. Later, I'm going to use LocationManager
let lat: Double = -15.6692660716233
let lng: Double = -47.83980712156295
func makeUIView(context: Self.Context) -> GMSMapView
let camera = GMSCameraPosition.camera(
withLatitude: lat,
longitude: lng,
zoom: zoom)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
mapView.mapType = .hybrid
mapView.delegate = context.coordinator
return mapView
func updateUIView(_ mapView: GMSMapView, context: Context)
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: lat, longitude: lng))
let position = CLLocationCoordinate2D(latitude: lat, longitude: lng)
let marker = GMSMarker(position: position)
marker.title = "You"
marker.map = mapView
func makeCoordinator() -> Coordinator
Coordinator(owner: self)
class Coordinator: NSObject, GMSMapViewDelegate, ObservableObject
let owner: GoogleMapsHome // access to owner view members,
init(owner: GoogleMapsHome)
self.owner = owner
@Published var selectedMarker: GMSMarker?
willSet objectWillChange.send()
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool
print("A marker has been touched by the user")
self.selectedMarker = marker
return true
我希望有人可以帮助我,以后,这个问题对任何有同样需要的人都有用。
最好的问候!
【问题讨论】:
【参考方案1】:过了一会儿,我找到了解决它的方法。
其中的关键字是“协调器”和“绑定”。
当然,我不确定这是正确的方法还是最好的方法,但至少它奏效了。
import Foundation
import SwiftUI
import GoogleMaps
struct Home: View
@State var selectedMarker: GMSMarker?
var body: some View
VStack(spacing: 0)
if (selectedMarker == nil)
Text("No marker selected").padding()
else
Text("There's a marker selected").padding()
GoogleMapsHome(selectedMarker: self.$selectedMarker)
.navigationBarBackButtonHidden(true)
.navigationBarTitle(Text("Map Test"), displayMode: .inline)
struct Home_Previews: PreviewProvider
static var previews: some View
Home()
struct GoogleMapsHome: UIViewRepresentable
private let zoom: Float = 18
let lat: Double = -15.6692660716233
let lng: Double = -47.83980712156295
@Binding var selectedMarker: GMSMarker?
func makeCoordinator() -> Coordinator
return Coordinator(
owner: self,
selectedMarker: $selectedMarker)
func makeUIView(context: Self.Context) -> GMSMapView
let camera = GMSCameraPosition.camera(
withLatitude: lat,
longitude: lng,
zoom: zoom)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
mapView.mapType = .hybrid
mapView.delegate = context.coordinator
return mapView
func updateUIView(_ mapView: GMSMapView, context: Context)
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: lat, longitude: lng))
let position = CLLocationCoordinate2D(latitude: lat, longitude: lng)
let marker = GMSMarker(position: position)
marker.title = "You"
marker.map = mapView
class Coordinator: NSObject, GMSMapViewDelegate, ObservableObject
let owner: GoogleMapsHome // access to owner view members,
@Binding var selectedMarker: GMSMarker?
init(
owner: GoogleMapsHome,
selectedMarker: Binding<GMSMarker?>
)
self.owner = owner
_selectedMarker = selectedMarker
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool
print("A marker has been touched")
self.selectedMarker = marker
return true
【讨论】:
以上是关于正在防触摸模式状态,无法操作的主要内容,如果未能解决你的问题,请参考以下文章