TeraIdentityImportInstruction.swift (1031B)
1 import SwiftUI 2 import UIKit 3 4 /// An intrinsically sized, wrapping instruction in the secure import form. 5 struct TeraIdentityImportInstruction: UIViewRepresentable { 6 let text: String 7 8 func makeUIView(context _: Context) -> UILabel { 9 let label = UILabel() 10 label.font = .preferredFont(forTextStyle: .body) 11 label.adjustsFontForContentSizeCategory = true 12 label.textColor = .label 13 label.numberOfLines = 0 14 label.lineBreakMode = .byWordWrapping 15 label.setContentCompressionResistancePriority(.required, for: .vertical) 16 label.isAccessibilityElement = true 17 return label 18 } 19 20 func updateUIView(_ label: UILabel, context _: Context) { 21 label.text = text 22 } 23 24 func sizeThatFits(_ proposal: ProposedViewSize, uiView: UILabel, context _: Context) -> CGSize? { 25 guard let width = proposal.width, width.isFinite, width > 0 else { return nil } 26 let size = uiView.sizeThatFits(CGSize(width: width, height: .greatestFiniteMagnitude)) 27 return CGSize(width: width, height: ceil(size.height)) 28 } 29 }