// // MiddleTruncatedText.swift // suixinkan // // 文件名中间省略展示,对齐 Android MiddleEllipsisTextView。 // import SwiftUI import UIKit /// 中间省略文本,用于长文件名展示。 struct MiddleTruncatedText: UIViewRepresentable { let text: String var font: UIFont = .systemFont(ofSize: 11, weight: .regular) var textColor: UIColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1) /// 创建中间省略 UILabel。 func makeUIView(context: Context) -> UILabel { let label = UILabel() label.lineBreakMode = .byTruncatingMiddle label.numberOfLines = 1 label.setContentHuggingPriority(.required, for: .vertical) label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) label.setContentCompressionResistancePriority(.required, for: .vertical) return label } /// 更新文本样式。 func updateUIView(_ uiView: UILabel, context: Context) { uiView.text = text uiView.font = font uiView.textColor = textColor } }