UILabel文本边距

UILabel文本边距

我希望设置一个UILabel却找不到方法去做。标签有一个背景设置,所以仅仅改变它的来源就不会有效果。将文本嵌入到10px大约在左手边。



慕码人2483693
浏览 1303回答 3
3回答

素胚勾勒不出你

我通过子类来解决这个问题UILabel和压倒一切drawTextInRect:就像这样:- (void)drawTextInRect:(CGRect)rect {     UIEdgeInsets insets = {0, 5, 0, 5};     [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];}相当于SWIFT 3.1:override func drawText(in rect: CGRect) {     let insets = UIEdgeInsets.init(top: 0, left: 5, bottom: 0, right: 5)     super.drawText(in: UIEdgeInsetsInsetRect(rect, insets))}正如您可能已经收集到的,这是对TC.的回答..与此相比,它有两个优点:没有必要通过发送sizeToFit讯息如果你的标签有背景,而且你不想让它缩小,它就会让标签框单独使用。

月关宝盒

对于多行文本,可以使用NSAttributedString设置左右边距。NSMutableParagraphStyle *style =  [[NSParagraphStyle defaultParagraphStyle] mutableCopy];style.alignment = NSTextAlignmentJustified;style.firstLineHeadIndent = 10.0f;style.headIndent = 10.0f;style.tailIndent = -10.0f;   NSAttributedString *attrText = [[NSAttributedString alloc] initWithString:title attributes:@{ NSParagraphStyleAttributeName : style}];  UILabel * label = [[UILabel alloc] initWithFrame:someFrame];label.numberOfLines = 0;label.attributedText = attrText;
打开App,查看更多内容
随时随地看视频慕课网APP