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