小编Mic*_*urn的帖子

SwiftUI 文本剪辑调整大小

在以下示例中,点击“展开”按钮会导致文本“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)

animation text clipping swiftui

12
推荐指数
1
解决办法
1335
查看次数

标签 统计

animation ×1

clipping ×1

swiftui ×1

text ×1