iOS 细节整理

作者: 钟鼎斌 | 来源:发表于2015-01-17 15:30 被阅读0次

1.NSAttributedString

这个类主要是 text字符的属性.

有几个常用的属性

NSFontAttributeName
NSForegroundColorAttributeName
NSBackgroundColorAttributeName 
NSStrokeColorAttributeName 
NSStrokeWidthAttributeName 

最简单的例子

随意自定义一个view

- (void)drawRect:(CGRect)rect
{
    CGContextRef  context = UIGraphicsGetCurrentContext();
    [self drawText:context];
}


- (void)drawText1:(CGContextRef)context
{
    NSString *str1 = @"string ";
    
    NSLog(@"%@",[UIFont familyNames]);
    NSDictionary *attributes1 = @{NSFontAttributeName:[UIFont fontWithName:@"Snell Roundhand" size:50]};
    [str1 drawAtPoint:CGPointMake(100, 100) withAttributes:attributes1];
}

如果字体不知道,可以调用

    NSLog(@"%@",[UIFont familyNames]);

输入结果如下

(
    Thonburi,
    "Khmer Sangam MN",
    "Snell Roundhand",
    "Academy Engraved LET",
    ......
)

这是简单的一个例子

又写了一个复杂些的例子,其中用到了NSMutableParagraphStyle

- (void)drawText2:(CGContextRef)context
{
    
    NSString *str2 =@"hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold";
   
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
    [paragraphStyle setAlignment:NSTextAlignmentLeft];
    [paragraphStyle setLineBreakMode:NSLineBreakByCharWrapping];
    [paragraphStyle setHeadIndent:35];
    
    
    CGRect rect = CGRectMake(50, 150, 200, 100);
    [[UIColor lightGrayColor] set];
    UIRectFill(rect);
    
    NSDictionary *attributes2 =
    @{NSFontAttributeName:[UIFont fontWithName:@"Didot" size:10],
      NSParagraphStyleAttributeName:paragraphStyle,
      NSForegroundColorAttributeName:[UIColor redColor],
      NSBackgroundColorAttributeName:[UIColor yellowColor]
                                };
    [str2 drawInRect:CGRectMake(50, 150, 200, 100) withAttributes:attributes2];
}

其中

是为了显示rect,更好的查看输出的区域
输出结果

相关文章

网友评论

    本文标题:iOS 细节整理

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