我想在标签框架及其文本之间添加插图。我认为可以使用 layoutMargins
( http://carpeaqua.com/2014/07/24/auto-layout-in-ios-8-layout-margins/ )但我无法做到这一点。
我有一个示例项目,您可以在其中看到我在做什么(错了?):https://github.com/runmad/MessagingApp
最佳答案
如果我是你,我会继承 UILabel
并添加 UIEdgeInsets
。在 UILabel
的子类中执行如下操作:
.m 文件
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self){
//Property in the header file so we can add custom insets per instance of this class
self.edgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
}
return self;
}
-(void)drawTextInRect:(CGRect)rect
{
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.edgeInsets)];
}
/* So that it will also work with auto layout */
-(CGSize)intrinsicContentSize
{
CGSize size = [super intrinsicContentSize];
size.width += self.edgeInsets.left + self.edgeInsets.right;
size.height += self.edgeInsets.top + self.edgeInsets.bottom;
if (self.numberOfLines == 0){
//There is a bug where intrinsice content
//size may be 1 point too short
size.height += 1;
}
return size;
}
关于ios - 使用自动布局或layoutMargins向UILabel添加填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879944/