美文网首页ios相关文章
swift4.0-标签中属性字符串的显示

swift4.0-标签中属性字符串的显示

作者: 落夏简叶 | 来源:发表于2018-03-14 16:31 被阅读247次

同一个Label中文字不同部分设置不同的属性,可以使用属性字符串NSAttributedString

这里给出一个例子


QQ20180314-162144@2x.png

通过这个例子,再一次体会到了swift的变化多端
NSAttributedStringKey相关的所有属性通过.语法找到,不再是以前的NSFontAttributeName、NSForegroundColorAttributeName了

NSAttributedStringKey.font对应NSFontAttributeName,用来设置字体
NSAttributedStringKey.foregroundColor 对应NSForegroundColorAttributeName,用来设置label的文字颜色
NSAttributedStringKey.backgroundColor对应NSBackgroundColorAttributeName,用来设置label某块区间的背景颜色

代码如下:

class ViewController: UIViewController {
    
    
    func attributedText() -> NSAttributedString {
        
        let string = "iOS SDK"
        
        let result = NSMutableAttributedString(string: string)
        //设置iOS的字体属性
        
        let attributesForFirstWord = [NSAttributedStringKey.font : UIFont.boldSystemFont(ofSize: 60),
                                      NSAttributedStringKey.foregroundColor : UIColor.red,
                                      NSAttributedStringKey.backgroundColor : UIColor.black]
        
        result.setAttributes(attributesForFirstWord, range:(string as NSString).range(of: "iOS") )     //(string as NSString)是为了使用range(of: "iOS") ) 这个接口
        
        //设置SDK的字体属性
        let shadow = NSShadow()
        shadow.shadowColor = UIColor.darkGray
        shadow.shadowOffset = CGSize(width: 4, height: 4)
        
        let attributesForSecondWord = [NSAttributedStringKey.font : UIFont.boldSystemFont(ofSize: 60),
                                       NSAttributedStringKey.foregroundColor : UIColor.white,
                                       NSAttributedStringKey.backgroundColor : UIColor.red,
                                       NSAttributedStringKey.shadow : shadow]
        result.setAttributes(attributesForSecondWord, range: (string as NSString).range(of: "SDK"))
        
        return NSAttributedString(attributedString: result)
        
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let label = UILabel()
        label.backgroundColor = UIColor.clear
        label.attributedText = attributedText()
        label.sizeToFit()                    //这句话和下面一句话不能调换位置,否则效果不对,字体不会居中显示
        label.center = view.center
        
        view.addSubview(label)
        
    }

}

相关文章

  • swift4.0-标签中属性字符串的显示

    同一个Label中文字不同部分设置不同的属性,可以使用属性字符串NSAttributedString 这里给出一个...

  • HTML5中新增的验证属性

    1.提示,输入域为空时显示,获得焦点输入内容后消失 (标签属性,直接写在标签属性中) placeholder 2....

  • 字符串模板补充

    带标签的模板 原始字符串 在标签函数的第一个参数中,存在一个raw属性,可以访问原始字符串 官方文档

  • JSTL自定义扩展标签

    作用:根据权限动态显示按钮 自定义标签:动态属性 动态属性指在标签处理器类和TLD文件中没有预先声明的属性,但是在...

  • 整理前端面试题(六) : JavaScript题目

    1. 写出简单描述html标签(不带属性的开始标签和结束标签)的正则表达式,并将以下字符串中的html标签去除掉 ...

  • 将HTML字符串解析为html样式--dangerouslySe

    使用如下的标签可以将含有标签的字符串转义显示: 其中details为需要转义的字符串

  • ElementUI修改tabs便签页样式

    有的时候我们希望标签页在页面中居中显示,例如这样: element官网默认是这样的 修改方法:在 标签中设置 属性...

  • 「HTML 」语法

    HTML标签 书写规范标签属性 全局属性 标签分类 标签关系 注释标签 HTML5新语义标签兼容性低版本IE显示问...

  • ReactNative 与 WebView 交互

    在 react native 开发中,webview 通常只是用来显示网页或者带有 html 标签的字符串。但是,...

  • HTML 图像

    在 HTML 中,图像由 标签定义。 是空标签,它只包含属性,并且没有闭合标签。要在页面上显示图像,需要使用源...

网友评论

    本文标题:swift4.0-标签中属性字符串的显示

    本文链接:https://www.haomeiwen.com/subject/hjgfqftx.html