TapGesture 在 Xcode 11.0 Beta 中不工作
TapGesture is not working in Xcode 11.0 Beta
玩 SwiftUI 并且此 TapGesture()(或任何其他手势)在 MacOS 的 Cocoa 应用程序中似乎对我不起作用,尽管 @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
当我在 TapGesture 上查看定义时。
import SwiftUI
struct CircleView : View {
var body: some View {
Circle()
.fill(Color.blue)
.frame(width: 400, height: 400, alignment: .center)
.gesture(
TapGesture()
.onEnded { _ in
print("View tapped!")
}
)
}
}
#if DEBUG
struct CircleView_Previews : PreviewProvider {
static var previews: some View {
CircleView()
}
}
#endif
构建成功,我正在预览中查看 Circle 并且我打开了控制台,但似乎没有打印任何内容。
我是不是做错了什么?这是 10.15 Beta 错误吗?除了 SwiftUI 之外,我还需要导入其他框架吗?此处 Swift 的新手。
点击工作正常,但是当您预览应用程序时,您不会在控制台中看到您的 print
语句。实际上 运行 应用程序,您会看到 print
语句显示在您的控制台中。
或者更改您的应用以在 UI 中显示某些内容以确认点击手势,例如 Alert
:
struct CircleView : View {
@State var showAlert = false
var body: some View {
Circle()
.fill(Color.blue)
.tapAction {
self.showAlert = true
}
.presentation($showAlert) {
Alert(title: Text("View Tapped!"),
primaryButton: .default(Text("OK")),
secondaryButton: .cancel())
}
}
}
或者您可能想要动画化形状的颜色变化:
struct CircleView: View {
@State var isBlue = true
var body: some View {
Circle()
.fill(isBlue ? Color.blue : Color.red)
.tapAction {
withAnimation {
self.isBlue.toggle()
}
}
}
}
玩 SwiftUI 并且此 TapGesture()(或任何其他手势)在 MacOS 的 Cocoa 应用程序中似乎对我不起作用,尽管 @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
当我在 TapGesture 上查看定义时。
import SwiftUI
struct CircleView : View {
var body: some View {
Circle()
.fill(Color.blue)
.frame(width: 400, height: 400, alignment: .center)
.gesture(
TapGesture()
.onEnded { _ in
print("View tapped!")
}
)
}
}
#if DEBUG
struct CircleView_Previews : PreviewProvider {
static var previews: some View {
CircleView()
}
}
#endif
构建成功,我正在预览中查看 Circle 并且我打开了控制台,但似乎没有打印任何内容。
我是不是做错了什么?这是 10.15 Beta 错误吗?除了 SwiftUI 之外,我还需要导入其他框架吗?此处 Swift 的新手。
点击工作正常,但是当您预览应用程序时,您不会在控制台中看到您的 print
语句。实际上 运行 应用程序,您会看到 print
语句显示在您的控制台中。
或者更改您的应用以在 UI 中显示某些内容以确认点击手势,例如 Alert
:
struct CircleView : View {
@State var showAlert = false
var body: some View {
Circle()
.fill(Color.blue)
.tapAction {
self.showAlert = true
}
.presentation($showAlert) {
Alert(title: Text("View Tapped!"),
primaryButton: .default(Text("OK")),
secondaryButton: .cancel())
}
}
}
或者您可能想要动画化形状的颜色变化:
struct CircleView: View {
@State var isBlue = true
var body: some View {
Circle()
.fill(isBlue ? Color.blue : Color.red)
.tapAction {
withAnimation {
self.isBlue.toggle()
}
}
}
}