我通过动态长度文本计算UILabel的大小(这里只有高度很重要).我绘制标签的图层边框以可视化标签的框架.我有时会在标签文本的上方和下方看到“填充”,但并非总是如此.我不想要填充.我怀疑它与属性字符串有关,因为我从未在“普通”字符串标签中遇到此类问题.
我看到了这个(注意第一行的填充):
我要这个:
相关代码:
-(void)setupQuestionView { [self.questionView setAttributedText:[self.allContents[_itemIndex] objectForKey:@"Question"]]; // new question view height CGSize constraint = CGSizeMake(kCellWidth - kLeftMargin - kRightMargin,FLT_MAX); CGSize size = [self.questionView.text sizeWithFont:[UIFont systemFontOfSize: kFontSize] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping]; [self.questionView setFrame:CGRectMake(kRightMargin,kTopMargin,kCellWidth - kRightMargin * 2,size.height)]; [self.questionView.layer setBorderWidth:1.0f]; // debug }
解决方法
kLeftMargin和kRightMargin是否相等?我找不到其他地方可能出错的地方.