我必須在按鈕上方添加一個漸變,以顯示按鈕上方文本的透明度。按鈕的高度應該是60。漸變的高度應該是30,但是漸變應該與視圖中的其他內容重疊。不幸的是,我必須支持 iOS 13。
我目前在按鈕上顯示漸變,但按鈕的總高度為 60 30:
VStack(spacing: 0) {
Rectangle()
.foregroundColor(.clear)
.background(
LinearGradient(
gradient: Gradient(colors: [.white.opacity(0.1), .white.opacity(1)]),
startPoint: .top,
endPoint: .bottom))
.frame(height: 30)
Button(action: {
state.isExpanded.toggle()
}, label: {
Text(state.isExpanded ? "Collapse" : "Expand")
.frame(maxWidth: .infinity,
minHeight: 60,
maxHeight: 60,
alignment: .center)
.foregroundColor(Color(.red))
.background(Color(.white))
})
.buttonStyle(.plain)
}
uj5u.com熱心網友回復:
如果它對某人有幫助,我設法通過疊加來做到這一點。
Button(action: {
state.isExpanded.toggle()
}, label: {
Text(state.isExpanded ? "Collapse" : "Expand")
.frame(maxWidth: .infinity,
minHeight: 60,
maxHeight: 60,
alignment: .center)
.foregroundColor(Color(.red))
.background(Color(.white))
}).overlay(Rectangle()
.foregroundColor(.clear)
.background(LinearGradient(
gradient: Gradient(colors: [.white.opacity(0), .white.opacity(1)]),
startPoint: .top,
endPoint: .bottom))
.frame(height: 30)
.alignmentGuide(.top) { $0[.top] 30 },
alignment: .top)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402225.html
