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

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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值