UILabel内边边距

在开发过程中,简单的使用UILabel属性,不能够达到我们显示一些特殊的要求。UILabel要显示边框时,不像UIButton有titleEdgeInsets属性,如果没有设置edgeInsets属性,里面的文字和边框离的很近,效果看起来不是很美观。怎么样才能让UILabel像UIButton一样拥有edgeInsets属性呢。首先要声明一个类继承于UILabel,声明edgeInsets属性。重写方法。
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
UIEdgeInsets insets = self.edgeInsets;
CGRect rect = [super textRectForBounds:UIEdgeInsetsInsetRect(bounds, insets)
limitedToNumberOfLines:numberOfLines];
rect.origin.x -= insets.left;
rect.origin.y -= insets.top;
rect.size.width += (insets.left + insets.right);
rect.size.height += (insets.top + insets.bottom);
return rect;
}
- (void)drawTextInRect:(CGRect)rect {
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.edgeInsets)];
}
在使用的时候,直接用声明的edgeInsets属性就可以了,好像还要用到[label sizeToFit];这个方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UILabel是一个常用的控件,它的属性设置的方法在纯代码中经常使用。在storyboard中,使用UILabel...
    坤哥lqk阅读 862评论 0 2
  • 写在前面 iOS的的布局机制「auto layout」不是一个新概念,它早在iOS 6中就推出来了,当下距离iOS...
    西门淋雨阅读 1,583评论 2 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • 一开始提笔想要写东西,却不知道该从哪里开始写。 Part 1: 记得前几天去面试的时候,面试的老师说我需要锻炼的一...
    yzy_lingo阅读 304评论 0 0
  • 关于这本书: 一句话谈这本书:通过番茄工作法的原理来让个人或者团队达到专注执行一件事的目的。 本书主旨:教会个人或...
    安妮Anne666阅读 2,356评论 6 50