swift版的StringAttribute
2015-10-08 22:22
633 查看
swift版的StringAttribute
效果
源码
https://github.com/YouXianMing/Swift-StringAttribute
分析
效果
源码
https://github.com/YouXianMing/Swift-StringAttribute
// // StringAttributeProtocol.swift // Swift-StringAttribute // // Created by YouXianMing on 15/10/8. // Copyright © 2015年 YouXianMing. All rights reserved. // import Foundation @objc protocol StringAttributeProtocol { /** 富文本属性名字 - returns: 属性名字 */ func attributeName() -> NSString; /** 属性对应的值 - returns: 对应的值 */ func attributeValue()-> AnyObject; /** 属性设置生效范围 - returns: 生效范围 */ optional func effectiveStringRange() -> NSRange; }
// // StringAttribute.swift // Swift-StringAttribute // // Created by YouXianMing on 15/10/8. // Copyright © 2015年 YouXianMing. All rights reserved. // import UIKit class StringAttribute: NSObject, StringAttributeProtocol { // MARK: 公用的属性 /// 富文本生效范围 var effectRange : NSRange! = NSMakeRange(0, 0) // MARK: 公用的方法 /** 属性有效范围 - returns: 有效范围 */ func effectiveStringRange() -> NSRange { return effectRange } // MARK: ==由子类重写的方法== /** ///////////////// 由子类重写 ///////////////// 属性名字 - returns: 属性名字 */ func attributeName() -> NSString { fatalError("must be overwrote by subclass") } /** ///////////////// 由子类重写 ///////////////// 属性值 - returns: 属性值 */ func attributeValue()-> AnyObject { fatalError("must be overwrote by subclass") } }
// // NSMutableAttributedString+StringAttribute.swift // Swift-StringAttribute // // Created by YouXianMing on 15/10/8. // Copyright © 2015年 YouXianMing. All rights reserved. // import Foundation extension NSMutableAttributedString { /** 添加富文本对象 - parameter stringAttribute: 实现了StringAttributeProtocol协议的对象 */ func addStringAttribute(stringAttribute : StringAttributeProtocol) { self.addAttribute(stringAttribute.attributeName() as String, value: stringAttribute.attributeValue(), range: stringAttribute.effectiveStringRange!()) } /** 消除指定的富文本对象 - parameter stringAttribute: 实现了StringAttributeProtocol协议的对象 */ func removeStringAttribute(stringAttribute : StringAttributeProtocol) { self.removeAttribute(stringAttribute.attributeName() as String, range: stringAttribute.effectiveStringRange!()) } }
分析
相关文章推荐
- Swift 细小知识点汇集
- Swift学习笔记(一):No such module 'Cocoa'
- Swift数据永久存储
- Swift 第十一课泛型
- Swift 协议
- swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框
- ios swift开发中,使用键盘,tableview根据键盘调整高度
- 【Swift 2.0】实现简单弹幕功能
- swift之宏定义
- Swift惰性初始化(lazy)属性
- swift swizzle
- 修改tabbar背景颜色
- Swift2.1 语法指南——基本运算符
- Swift 数组
- Swift lazy 修饰符和方法
- Swift项目导入OC文件 & OC项目导入Swift文件
- xcode7 中到导入ReactiveCocoa框件创建过程 和 解决 Box.swift出错、MutableBox.swift出错
- swift中的正则表达式
- Swift 语法篇
- 【面试必备】Swift 面试题及其答案