美文网首页
【iOS】Swift版属性字符串

【iOS】Swift版属性字符串

作者: 刘大帅 | 来源:发表于2015-10-09 15:44 被阅读530次

    参考文章

    Swift-StringAttribute


    源码

    import Foundation
    
    @objc protocol AttributeStringProtocol {
    
        /**
        富文本属性名称
        
        - returns: 属性名称
        */
        func attributeName() -> NSString
        
        /**
        属性对应的值
        
        - returns: 对应的值
        */
        func attributeValue() -> AnyObject
        
        /**
        属性设置生效范围
        
        - returns: 生效范围
        */
        optional func effectiveRange() -> NSRange
    }  
    
    import Foundation
    
    extension NSMutableAttributedString {
    
        /**
        添加富文本对象
        
        - parameter stringAttribute: 实现了AttributeStringProtocol协议的对象
        */
        func addStringAttribute(stringAttribute : AttributeStringProtocol) {
        
            self.addAttribute(stringAttribute.attributeName() as String,
                value: stringAttribute.attributeValue(),
                range: stringAttribute.effectiveRange!())
            
        }
        
        /**
        删除指定的富文本对象
        
        - parameter stringAttribute: 实现了AttributeStringProtocol协议的对象
        */
        func removeStringAttribute(stringAttribute : AttributeStringProtocol) {
        
            self.removeAttribute(stringAttribute.attributeName() as String,
                range: stringAttribute.effectiveRange!())
        }
    }  
    
    import UIKit
    
    class StringAttribute: NSObject, AttributeStringProtocol {
        
        // 富文本的生效范围
        var m_effectRange : NSRange! = NSMakeRange(0, 0)
        
        // MARK: AttributeStringProtocol
        func attributeName() -> NSString {
            
            fatalError("It have to be overwritten by subclass !")
        }
        
        func attributeValue() -> AnyObject {
            
            fatalError("It have to be overwritten by subclass !")
        }
        
        func effectiveRange() -> NSRange {
            
            return m_effectRange
        }
    
    }  
    

    分析

    分析1.png 分析2.png

    源码

    下载源码

    相关文章

      网友评论

          本文标题:【iOS】Swift版属性字符串

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