In swift or objective-c, I can set exclusiveTouch property to true or YES, but how do I do it in swiftUI?
Asked
Active
Viewed 1,496 times
2 Answers
2
Xcode 11.3
Set exclusiveTouch
and isMultipleTouchEnabled
properties inside your struct init()
or place it in AppDelegate.swift
for the whole app:
struct ContentView: View {
init() {
UIButton.appearance().isMultipleTouchEnabled = false
UIButton.appearance().isExclusiveTouch = true
UIView.appearance().isMultipleTouchEnabled = false
UIView.appearance().isExclusiveTouch = true
//OR
for subView in UIView.appearance().subviews {
subView.isMultipleTouchEnabled = false
subView.isExclusiveTouch = true
UIButton.appearance().isMultipleTouchEnabled = false
UIButton.appearance().isExclusiveTouch = true
}
}
var body: some View {
VStack {
Button(action: {
print("BTN1")
}){
Text("First")
}
Button(action: {
print("BTN2")
}){
Text("Second")
}
}
}
}

FRIDDAY
- 3,781
- 1
- 29
- 43
0
Can be handled something like below :
struct ContentView: View {
@State private var isEnabled = false
var body: some View {
VStack(spacing: 50) {
Button(action: {
self.isEnabled.toggle()
}) {
Text("Button 1")
}
.padding(20)
.disabled(isEnabled)
Button(action: {
self.isEnabled.toggle()
}) {
Text("Button 2")
}
.padding(50)
.disabled(!isEnabled)
}
}
}

Partha G
- 1,056
- 8
- 13
-
Are you able to enable these buttons after clicking one of them? Adding a timer? – Alan Wu Nov 14 '19 at 02:46
-
Yes. Tapping the enabled button will make it disabled while enabling the other one. Regarding the timer, that is not part of the initial question. – Partha G Nov 14 '19 at 09:35
-
Both need to be enabled. And prevent multitouch. – FRIDDAY Dec 23 '19 at 09:57
-
@FRIDDAY Sample provided is to give an idea on how to enable one while the other should be in disabled state. Question has been changed since it was answered. – Partha G Dec 23 '19 at 16:26