gpt4 book ai didi

objective-c - Objective-C : Issue in calculating height of individual labels

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:21 25 4
gpt4 key购买 nike

我在单元格中添加了一个标签,该单元格具有基于要添加到其中的文本的动态高度。我已将字体大小设置为 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;
}

有人知道为什么我不能在获取高度方法中设置与我用于文本的实际字体大小相同的字体大小吗?

我已经为 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

最佳答案

试试这段代码:-

CGSize labelsize;
UILabel *commentsTextLabel = [[UILabel alloc] init];;
commentsTextLabel.tag =50;
[commentsTextLabel setNumberOfLines:0];
[commentsTextLabel setBackgroundColor:[UIColor clearColor]];
NSString *text=@"cakghaahsdlajsldjasdsa;dkas;dkasdkasdasp'dlasp'dlas'dlas'dlas'dlas'dlas'dlasdlasdlasdlasdlas'das'dlasdas";
[commentsTextLabel setFont:[UIFont fontWithName:@"Helvetica"size:14]];
labelsize=[text sizeWithFont:commentsTextLabel.font constrainedToSize:CGSizeMake(268, 2000.0) lineBreakMode:UILineBreakModeWordWrap];
commentsTextLabel.frame=CGRectMake(10, 24, 268, labelsize.height);
[cell.contentView addSubview:commentsTextLabel];
[commentsTextLabel release];

根据这段代码,您的标签高度将动态调整。确保你是否在你的表格 View 单元格中添加这个标签,所以不要忘记让单元格高度也动态。

关于objective-c - Objective-C : Issue in calculating height of individual labels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6577894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com