SwiftUI剪裁的图像并不是真正剪裁的



在iOS 15中,以下代码:

import SwiftUI
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
ScrollView(.horizontal) {
HStack{ForEach(0 ..< 10, id: .self) {Text("Item($0)")}}
}
Image(systemName: "clock").resizable()
.padding(.top, -50).frame(height: 50)
.contentShape(Rectangle())
.clipped()
.onTapGesture {print("good")}
}
}
}

碰巧ScrollView无法滚动,因为底部的图像覆盖了它。我们如何滚动ScrollView

时钟视图正在吞噬水龙头。您需要通过添加以下内容使时钟忽略抽头:

.allowsHitTesting(false)

像这样:

import SwiftUI
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
ScrollView(.horizontal) {
HStack{ForEach(0 ..< 10, id: .self) {Text("Item($0)")}}
}
Image(systemName: "clock").resizable()
.padding(.top, -50).frame(height: 50)
.contentShape(Rectangle())
.clipped()
.allowsHitTesting(false)
}
}
}

最新更新