在以下示例中,点击“展开”按钮会导致文本“39”在调整大小过渡到“40”时进行剪辑。这种用途的真实上下文是一个文本标签,它反映了动画图中选择器的值。我希望文本只占用它所需的空间,但在值之间动画时不会剪切。
禁用标签的动画不是一个选项,因为标签在我的图表中的位置也会有动画。
再生产:
import SwiftUI
struct TextClipping: View {
enum ExpansionState {
case expanded
case contracted
mutating func toggle() {
switch self {
case .expanded:
self = .contracted
case .contracted:
self = .expanded
}
}
}
@State var expansion: ExpansionState = .contracted
var text: String {
switch expansion {
case .expanded:
return "40"
case .contracted:
return "39"
}
}
var body: some View {
VStack(spacing: 16) {
Text(text)
.font(.system(.title, design: .rounded))
.fontWeight(.bold)
.foregroundColor(.black)
Button(self.expansion == .contracted ? "Expand" : "Contract") …Run Code Online (Sandbox Code Playgroud)