iOS 开发 iOS Developer

Swift UI 20 自定制UIAlertControlle

2016-08-31  本文已影响0人  前进的苏辰

1:系统提供的提示框如下所示:

系统.png

2: 自定制提示框如下:

自定制.png

3: 所用到的方法

(1)可同时改变字体大小及颜色(第一个参数为字典,第二个为结构体)

alertTitleStr.addAttributes(<#T##attrs: [String : AnyObject]##[String : AnyObject]#>, range: <#T##NSRange#>)  

(2)各自设置字体大小、颜色 (参数使用见代码如下)

 alertTitleStr.addAttribute(<#T##name: String##String#>, value: <#T##AnyObject#>, range: <#T##NSRange#>)

具体代码如下:

func createMyAlert(){
        let alert = UIAlertController.init(title: "点错了", message: "只能相邻的图交换", preferredStyle: .Alert)
        let action = UIAlertAction.init(title: "继续", style: .Default, handler: nil)
        
        //1.修改title的字体大小及颜色
        let alertTitleStr = NSMutableAttributedString.init(string: "点错了")
        alertTitleStr.addAttributes([NSFontAttributeName : UIFont.boldSystemFontOfSize(25), NSForegroundColorAttributeName: UIColor.redColor()], range: NSRange.init(location: 0, length: 3))
        alert.setValue(alertTitleStr, forKey: "attributedTitle")
        
        
        //2.修改message的字体大小及颜色
        let alertMessageStr = NSMutableAttributedString.init(string: "只能相邻的图交换")
        alertMessageStr.addAttribute(NSForegroundColorAttributeName, value: UIColor.blueColor(), range: NSRange(location: 0, length: 8))
        alertMessageStr.addAttribute(NSFontAttributeName, value: UIFont.boldSystemFontOfSize(20), range: NSRange(location: 0, length: 8))
        
        
        alert.setValue(alertMessageStr, forKey: "attributedMessage")
        
        
        //3.修改action的颜色 (不能修改action字体大小)
//("_titleTextColor", "titleTextColor"都可以)
//(建议使用“_titleTextColor”, 因为当我们查看 UIAlertAction的属性列表中并没有它"titleTextColor",“_titleTextColor”是的它的成员变量列表中的一员。)
        action.setValue(UIColor.greenColor(), forKey: "_titleTextColor")
        
        
        alert.addAction(action)
        self.presentViewController(alert, animated: true, completion: nil)
    }

上一篇下一篇

猜你喜欢

热点阅读