属性字符串

转载 2015年11月21日 18:54:20
iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求。
 
     实例化方法:
使用字符串初始化
方法一:
- (id)initWithString:(NSString *)str;
例:
NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"设置带属性的字符串"];
 
方法二:
- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
: 
先创建一个字典,在字典中存放一些属性名和属性值:
NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:
                                    [UIFont systemFontOfSize:15.0],NSFontAttributeName,
                                    [UIColor redColor],NSForegroundColorAttributeName,
                                   [NSNumber numberWithInter:NSUnderlineStyleSingle], NSUnderlineStyleAttributeName,nil];
 
NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"设置带属性的字符串" attributes:attributeDict];
 
方法三:
-(id)initWithAttributedString:(NSAttributedString *)attester;
使用NSAttributedString初始化,跟NSMutableStringNSString类似
 
使用方法:
 
为某一范围内文字添加某个属性
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
 
为某一范围内文字设置多个属性
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;
 
为某一范围内文字添加多个属性
  • (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;
 
移除某范围内的某个属性
- (void)removeAttribute:(NSString *)name range:(NSRange)range;
  
     常见的属性及说明
 
字体 NSFontAttributeName 
 
段落格式: NSParagraphStyleAttributeName 
 
字体颜色 NSForegroundColorAttributeName 
  
背景颜色: NSBackgroundColorAttributeName
 
删除线格式: NSStrikethroughStyleAttributeName
 
下划线格式: NSUnderlineStyleAttributeName
      
删除线颜色: NSStrokeColorAttributeName 
 
删除线宽度: NSStrokeWidthAttributeName
 
阴影: NSShadowAttributeName
 
使用实例
   UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)];
   testLabel.backgroundColor = [UIColor lightGrayColor];
   testLabel.textAlignment = NSTextAlignmentCenter;
   NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"设置带属性的字符串"];
   [AttributedStr addAttribute:NSFontAttributeName
                         value:[UIFont systemFontOfSize:16.0]
                         range:NSMakeRange(2, 2)];
   [AttributedStr addAttribute:NSForegroundColorAttributeName
                         value:[UIColor redColor]
                         range:NSMakeRange(2, 2)];
   testLabel.attributedText = AttributedStr;
   [self.view addSubview:testLabel];属性字符串

iOS 字符属性NSAttributedString描述

iOS 字符属性NSAttributedString描述
  • Lotheve
  • Lotheve
  • 2015年07月12日 14:07
  • 2183

IOS属性字符串

A /*  字符属性    字符属性可以应用于 attributed string 的文本中。    NSString *const NSFontAttributeName;(字体) ...
  • App_IOS
  • App_IOS
  • 2015年08月16日 18:54
  • 378

UILabel的一些常用属性、NSAttributedString属性字符串

UILabel的一些常用用法
  • lover0920
  • lover0920
  • 2015年11月28日 11:33
  • 1686

iOS中属性化字符串

富文本的基本数据类型是NSAttributedString。**属性化字符串**(attributed string)是把属性设置到某些字符上的字符串。属性可以是任何键值对,但是为了实现富文本,则通常...
  • hnjyzqq
  • hnjyzqq
  • 2014年10月08日 19:18
  • 1810

iOS中label设置属性字符串

iOS开发中,label是最常用的控件之一,而且很多时候,一行中不同的文字会要求显示不同的颜色,不同的大小等,对于这种情况,当然我们可以设置多个label来分别展示文字,但有时候,这些label的fr...
  • liugai129
  • liugai129
  • 2015年05月05日 17:55
  • 1256

自定义属性字符串

// NSAttributedString ios6以后才有的 // 作用用来显示自定义字符串 颜色 字体 大小 UILabel *label = [[UILabel alloc]i...
  • a504982932
  • a504982932
  • 2015年09月21日 21:43
  • 72

内存管理属性字符串

object-c中的assign,retain,copy,atomic,nonatomic,readonly,readwrite以及strong,weak 分类: iOS开发2014-05-...
  • klabcxy36897
  • klabcxy36897
  • 2015年03月31日 17:36
  • 318

富文本(属性字符串)

iOS不仅有富文本处理的功能,而且对于文字排版的处理能力那是相当的强大     正题开始之前插播一点基础知识:     在iOS中或者Mac OS X中怎样才能将一...
  • qq_27106935
  • qq_27106935
  • 2015年04月03日 16:47
  • 921

iOS_NSAttributedString 的21种属性详细介绍(图文混排)

说明: NSAttributedString 可以非常方便的实现文字排版和图文混排功能. 共有21中效果(API), 本文将较详细的介绍21种的属性的使用 核心API:类: NSAttribut...
  • Sponge_CMZ
  • Sponge_CMZ
  • 2015年11月12日 09:58
  • 2380

NSMutableAttributedString 属性字符串的使用

貌似可以实现自适应高度,待证实 毛看看坎坎坷坷坎坎坷坷坎坎坷坷坎坎坷坷坎坎坷坷坎坎坷坷坎坎坷坷坎坎坷坷 - (NSMutableAttributedString *)filterLinkWit...
  • login_csdn
  • login_csdn
  • 2015年07月29日 22:13
  • 208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:属性字符串
举报原因:
原因补充:

(最多只允许输入30个字)