如何在UIAlertController中更改按钮的字体

时间:2017-11-01 05:31:21

标签: swift swift3 uialertcontroller

我需要更改UIAlertController中的按钮字体,我已经使用了下面的代码,但是我无法正常工作,因为当用户触摸UIAlertController的按钮时,字体将更改为默认值。

decode(token: string): any {
  const decodedJWT = jwt.decode(token, { complete: true });

  if (decodedJWT === null) {
       // deal with null
  } else if (typeof decodedJWT === 'string') {
       // deal with string
  } else {
       const issuer = (decodedJWT as any).payload.iss; // cast to `any` type
  }

  return {};
}

以下是此扩展程序的用法:

extension UIAlertController {

    private func changeFont(view:UIView,font:UIFont) {
        for item in view.subviews {
            if let col = item as? UICollectionView {
                for  row in col.subviews{
                    changeFont(view: row, font: font)
                }
            }
            if let label  = item as? UILabel {
                label.font = font
            } else {
                changeFont(view: item, font: font)
            }

         }
     }

     //To set font for any UILabels in action sheet
     open override func viewWillLayoutSubviews() {
         super.viewWillLayoutSubviews()
         let font = MyCustomFont
         changeFont(view: self.view, font: font! )
     }
}

1 个答案:

答案 0 :(得分:2)

很难改变它,因为iOS系统没有为我们提供API。因此,如果我们需要进行一些自定义,我们最好使用第三方库:SCLAlertView-SwiftPopupDialog