У меня есть метка, добавленная к ячейке, которая имеет динамическую высоту на основе текста, который будет добавлен в нее.Я установил размер шрифта равным 12, как показано ниже:
CGFloat height = [CustomCell getIndividualLabelHeight:text];
NSLog(@"height of commet:%@ is %f",commentText, height);
CustomOHAttributLabel *label = [[CustomOHAttributLabel alloc]initWithFrame:CGRectMake(CELL_TEXT_LEFT_MARGIN, 2*CELL_SPACING+totalCommentLabelHeight, CELL_CONTENT_WIDTH - (CELL_TEXT_LEFT_MARGIN*2), height)];
[label setLabelwithText:text fontSize:12 andSubString:userName withURL:url];
Однако в моем методе getIndividualLabelHeight, если я также установил шрифт равным 12,0 (при настройке размера CGSize), текст вметка может быть усечена.Только когда я установлю его на 14, текст не будет усечен.
+ (CGFloat)getIndividualLabelHeight:(NSString *)text
{
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
//The full text will only show when I set fontsize to 14 (instead of 12)
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
return size.height;
}
У любого есть идея, почему я не могу установить такой же размер шрифта в моем методе get height, как фактический размер шрифта, который я используюдля моего текста?
Я добавил свой код реализации для CustomOHAttributLabel для дальнейшей ссылки
@implementation CustomOHAttributLabel
- (CustomOHAttributLabel*) initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
}
return self;
}
- (void) setLabelwithText:(NSString *)text fontSize:(CGFloat)fontSize andSubString:(NSString *)subString withURL:(NSString *)url
{
NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:text];
[attrStr setFont:[UIFont systemFontOfSize:fontSize]];
[attrStr setTextColor:[UIColor grayColor]];
[attrStr setFont:[UIFont boldSystemFontOfSize:fontSize] range:[text rangeOfString:subString]];
[attrStr setTextColor:[UIColor darkGrayColor] range:[text rangeOfString:subString]];
self.attributedText = attrStr;
[self addCustomLink:[NSURL URLWithString:url] inRange:[text rangeOfString:subString]];
}
@end