`
119568242
  • 浏览: 420234 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios]label增加边距-既左右对齐

    博客分类:
  • ios
阅读更多

http://www.cocoachina.com/bbs/read.php?tid=189979&page=2

 

谢谢各位了,找到问题的原因所在了。在NSAttributeString中找到了这句话。默认用来计算的字体和大小。
UIKIT_EXTERN NSString *const NSFontAttributeName NS_AVAILABLE_IOS(6_0);                // UIFont, default Helvetica(Neue) 12

吃亏就在这了,在所有计算方法里需要用到attributes这个参数的时候我都传nil,导致计算的大小和UILabel默认的字体大小不一致,计算出错。
附上我的最终效果和代码。



1
2
3
4
5
6
7
8
9
10
11
12
13
14
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 21)];
    label.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:label];
     
    NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"TViewController"];
    //计算文字大小,参数一定要符合相应的字体和大小
    CGSize attributeSize = [attributeString.string sizeWithAttributes:@{NSFontAttributeName:label.font}];
    //计算字符间隔
    CGSize frame = label.frame.size;
    NSNumber *wordSpace = [NSNumber numberWithInt:(frame.width-attributeSize.width)/(attributeString.length-1)];
    //添加属性
    [attributeString addAttribute:NSKernAttributeName value:wordSpace range:NSMakeRange(0, attributeString.length)];
    
    label.attributedText = attributeString;


图片:QQ20140311-1@2x.png 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics