轻按注册即可进入裁剪后的视图范围。
看来,SwiftUI会在另一视图内以全角和全角布局图像,以为其提供宽高比填充的填充模式。很好,但是如果我想向视图添加轻击动作,则即使在剪切时,轻击也会在视图的边界之外注册。我可能做错了此事,或者有另一种方法。除此代码外,我还尝试使用矩形的.clippedShape和.contentShape。我如何将其移到裁剪框外的水龙头不在基础图像上对齐的位置。要重现切换到剪辑并点按该区域的图像,该图像将占据剪辑视图框架的外部。
import SwiftUI
struct ImageContainer : View {
var body: some View {
Image(systemName: "cube")
.resizable()
.scaledToFill()
.clipped()
}
}
struct ContentView: View {
@State var isClipped = false
@State var count = 0
var body: some View {
VStack{
Toggle(isOn: $isClipped) {
Text("Clip It ")
.font(.title)
}.frame(width: 175)
ZStack{
if self.isClipped == true{
ImageContainer()
.frame(width: 200, height: 200)
.contentShape(Rectangle())
.clipped()
.background(Color.blue)
.onTapGesture {
print("tapped mainContainer\(self.count)\n")
self.count += 1
}
}else{
ImageContainer()
.frame(width: 200, height: 200)
.background(Color.blue)
.onTapGesture {
print("tapped mainContainer\(self.count)\n")
self.count += 1
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
答案 0 :(得分:1)
我在控制可点击区域的图像上使用.contentShape(Rectangle())成功。
您可以尝试使用ZIndex,以便周围的视图捕获到匹配。但是我对此有好坏参半的结果,自iOS 14.1起AFAIK也出现了问题
答案 1 :(得分:0)
考虑到可识别的敲击手指大小,我使用以下方法:
python setup.py bdist_wheel
在您的示例中,此修饰符的效果在var body: some View {
Image(systemName: "cube")
.resizable()
.scaledToFill()
.allowsHitTesting(false) // !!!
}
上具有良好的可见性