在开发过程中,简单的使用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内边边距
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 关于这本书: 一句话谈这本书:通过番茄工作法的原理来让个人或者团队达到专注执行一件事的目的。 本书主旨:教会个人或...