目前在SwiftUI中屏蔽图像似乎非常容易,并且可以使用以下方法实现:
.clipShape(RoundedRectangle(cornerRadius:20,
style: .continuous))
,甚至.mask()
。是否有一种方法可以通过指定.center
,.bottom
等来控制掩盖图像的哪一部分?到目前为止,我一直在研究偏移量,但是我想知道是否有更简单的方法。
答案 0 :(得分:1)
您可以将填充与形状结合在一起。这可能是您正在寻找的更简单的方法?
Image("profile")
// Add padding to sides of the shape to control what is masked
.mask(Rectangle().padding(.bottom, 20))
.border(Color.orange)
答案 1 :(得分:0)
.clipShape()
需要一个形状,因此,如果您要经常修剪底部,则可以创建一个临时形状。像这样:
import SwiftUI
struct ContentView: View {
var body: some View {
Image("mypic")
.aspectRatio(contentMode: .fit)
.clipShape(BottomClipper(bottom: 100))
}
}
struct BottomClipper: Shape {
let bottom: CGFloat
func path(in rect: CGRect) -> Path {
Rectangle().path(in: CGRect(x: 0, y: rect.size.height - bottom, width: rect.size.width, height: bottom))
}
}