SwiftUI 使用 Image 当中 ZStack 背景 容器设置大小, 但是图片尺寸太大, 影响到上下的点击区域问题. 代码如下
Button{
}label: {
Text("aaa")
}
ZStack {
AImageView(mainob.bgPlay.song?.cover, "customized")
.scaledToFill()
.frame(width: width , height: height)
.clipped()
}.frame(width: width , height: height)
Button{
}label: {
Text("aaa")
}
1
okakuyang 272 天前
看不懂你写的,一般不都是最外层一个 VStack 包起来,你自己设置了宽高是什么
|
2
MakHoCheung 272 天前
可以用 .contentShape() 来修改 AImageView 点击区域
|
3
owen666 272 天前 1
你根本就没学懂 SwiftUI 。就在那里胡写。
ZStack 是叠加上层的,假设你的顶层是 VStack 的话,那么你两个 Button 是竖排,ZStack 摆在它们上面,你当然就不能点击啦。 正确的的做法是 VStack { Button1 Button2 } .background(AImageView()) 不那么正确但是可用的做法是 ZStack { AImageView() VStack { Button1 Button2 } } |
4
dmql 271 天前
#2 正解,.clipped()虽然表面看起来把 ImageView 的宽和高给裁切了,但不会对图片的点击范围产生影响,用.contentShape(Rectangle())把图片的点击范围包装一下就可以了。
|
5
kopanya OP @MakHoCheung 多谢指导
|