我想创建一个缩放ZStack图像的视图。当我给予它们一个onTapGesture
时,只有顶层可用,即使是在其透明区域,而背景应该是可粘贴的。
我确实尝试将renderingMode改为template来将透明区域标记为未渲染。我甚至尝试创建UIButton作为替换,因为在旧版本的UIKit中,透明区域是不可点击的。
ZStack{
Image("backgound"))
.resizable()
.scaledToFit()
Image("foreground")
.resizable()
.scaledToFit()
Image("clickableHighlight1")
.resizable()
.scaledToFit()
.onTapGesture {
//do stuff specific to highlite1 area
}
Image("clickableHighlight2")
.resizable()
.scaledToFit()
.onTapGesture {
//do stuff specific to highlite2 area
}
}
字符串
2条答案
按热度按时间bejyjqdl1#
我不知道这有多重要,但我想出了一个解决方案,也许其他人会从中受益。
我确实使用转换器将我的可点击区域转换为SwiftUI形状(https://svg-to-swiftui.quassum.com/)这可能是困难的,这取决于你试图转换的svg。对我来说,它工作得很好,因为svg包含简单的路径。我给了结果形状语义名称,并将它们粘贴在我的视图上方。可悲的是,不能使用缩放到适合修改器来缩放形状,因为
onTapGesture
识别出了孔区域而不仅仅是突出显示的区域。所以我最终使用了overlay
。字符串
5cg8jx4n2#
字符串
这段代码可以帮助你制作可点击的图片