지금 쯤이면 기본 제공 UIKit
기능이나 관련 프레임 워크의 일부가 될 것 같아서 좋은 질문 입니다. 다음은 질문에 대한 좋은 시각적 예입니다.
쉬운 방법은 없지만 확실히 가능합니다. 이를 수행하는 한 가지 방법은보기의 경계에 합리적으로 가까운 글꼴을 찾을 때까지 다른 글꼴 크기를 프로그래밍 방식으로 시도하는 것입니다. 또는 의 boundingRect()
기능을 사용하여이를 수행 할 수 있습니다 . 예를 들면 :NSString
NSAttributedString
let string = "This is a test"
let infiniteSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height:CGFloat.greatestFiniteMagnitude)
let size = string.boundingRect(with: infiniteSize, options: [], attributes: [.font: UIFont.systemFont(ofSize: avgSize)] context: nil).size
완전한 무차별 대입 방식보다 더 효율적으로 이진 검색을 수행 할 수 있습니다. 정말 강력한 것을 찾고 있다면 올바른 단어 줄 바꿈 및 iOS 글꼴 캐싱 성능을 포함하여 약간 더 관련된 고려 사항도 있습니다.
화면에 텍스트를 쉽게 표시하는 데에만 관심이 있다면 Swift로 강력한 구현을 개발했으며,이 구현은 프로덕션 앱에서도 사용하고 있습니다. UIView
여러 줄을 포함하여 모든 입력 텍스트에 대해 효율적인 자동 글꼴 크기 조정 기능이있는 하위 클래스입니다. 사용하려면 다음과 같이하면됩니다.
let view = AKTextView()
// Use a simple or fancy NSAttributedString
view.attributedText = .init(string: "Some text here")
// Add to the view hierarchy somewhere
그게 다야! 전체 소스는 https://github.com/FlickType/AccessibilityKit 에서 찾을 수 있습니다.
도움이 되었기를 바랍니다!