Search code examples
iosswiftuilabeluiappearance

How to default UILabel Font and Size using Swift


I find UISegmentedControl change font and size like this :

UISegmentedControl.appearance().setTitleTextAttributes(myFontAttribute as [NSObject : AnyObject] , forState: .Normal)

but UILabel have no this method

I want to do like

UILabel.appearance().setAttributed(myFontAttribute)

I don't want to change UILabel font in StoryBoard

I want to using program to do this (because my app is done, but only font should change to bigger and other font)

What should I do ?


Solution

  • First you need to add extension to UILabel :

    extension UILabel{
        var defaultFont: UIFont? {
            get { return self.font }
            set { self.font = newValue }
        }
    }
    

    Second use appearance to set it:

        UILabel.appearance().defaultFont = UIFont.systemFont(ofSize: 25)
    

    Hope it helps.