在iOS中,可以使用MVVM模式來實現控制字號大小。下面是一種實現方式:
class ViewModel {
var fontSize: CGFloat = 16.0
// 根據字號大小計算其他相關的字體屬性,例如行間距、字間距等
var lineSpacing: CGFloat {
return fontSize * 0.5
}
// 其他相關的方法...
}
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
var viewModel = ViewModel()
override func viewDidLoad() {
super.viewDidLoad()
// 設置Label的字體大小
label.font = UIFont.systemFont(ofSize: viewModel.fontSize)
// 設置Label的行間距
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = viewModel.lineSpacing
let attributedString = NSAttributedString(string: label.text ?? "", attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
label.attributedText = attributedString
}
// 其他相關的方法...
}
@IBAction func increaseFontSize() {
viewModel.fontSize += 2.0
// 更新Label的字體大小
label.font = UIFont.systemFont(ofSize: viewModel.fontSize)
// 更新Label的行間距
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = viewModel.lineSpacing
let attributedString = NSAttributedString(string: label.text ?? "", attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
label.attributedText = attributedString
}
通過上述步驟,就可以使用MVVM模式來實現控制字號大小了。在ViewModel中保存字號大小的狀態,View通過ViewModel來獲取字號大小,并更新相應的UI。