私はSwiftを使用しています。私は実行時に動的にUIAppearanceの変化を反映したい。私のビューにはいくつかのラベルとスライダがあります。スライダーはラベルのフォントサイズを決定します。iOS - フォントサイズを動的に変更する
import UIKit
class ViewController: UIViewController {
// Slider for label size
@IBOutlet weak var slider: UISlider!
// call if slider is changed
@IBAction func sliderChanged(sender: AnyObject) {
print(slider.value)
UILabel.appearance().fontSize = CGFloat(slider.value * 60) // B) this does NOT change any font size
}
override func viewDidLoad() {
super.viewDidLoad()
UILabel.appearance().fontSize = 50 // A) this changes font sizes of all labels
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
// Extension for changing all fontSize of UILabel
extension UILabel {
var fontSize: CGFloat{
get {return self.font.pointSize}
set {self.font = UIFont(name: self.font.fontName, size: newValue)}
}
}
うまく機能し、ページ内のすべてのラベルのフォントサイズを変更するA)
ライン。しかし、B
という行はフォントサイズを変更しません。私はページ内のすべてのフォントサイズを動的に変更する方法を知りたいと思います。
(好ましくは、私はページ内のいずれかで、ラベル1を設定する必要はありません)
のサイズを変更できるようによるとしている携帯電話を識別することができます:「ときビューのiOSは、外観の変更を適用しますウィンドウに入ると、すでにウィンドウ内にあるビューの外観は変更されません。現在ウィンドウ内にあるビューの外観を変更するには、ビュー階層からビューを移動して戻します。 – Larme
ありがとうございました。 – redstone
@Jimmyそれは今動作するのですか?あなたは答えてくれますか? – Coder1000