Objective c CGRect-boundingrectwithsize用于长NSString不工作
我有一个方法,返回NSString的高度,并返回tableview方法上的高度:heightForRowAtIndexPath,但当NSString长度超过2段时,字符串末尾的一小部分会被切断Objective c CGRect-boundingrectwithsize用于长NSString不工作,objective-c,uitableview,nsstring,cgrect,heightforrowatindexpath,Objective C,Uitableview,Nsstring,Cgrect,Heightforrowatindexpath,我有一个方法,返回NSString的高度,并返回tableview方法上的高度:heightForRowAtIndexPath,但当NSString长度超过2段时,字符串末尾的一小部分会被切断 - (float)heightWithFont:(UIFont *)font width:(float)width { CGRect frame = [string boundingRectWithSize:CGSizeMake(width, 9999.f)
- (float)heightWithFont:(UIFont *)font width:(float)width {
CGRect frame = [string boundingRectWithSize:CGSizeMake(width, 9999.f)
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:@{ NSFontAttributeName: font}
context:nil];
return frame.size.height; }
您确定宽度正确吗?1像素可能很重要。宽度取决于屏幕大小。UIScreen.mainScreen.bounds.size.width-16.f这是基准高度。为什么它不基于表视图的大小?那么16是从哪里来的呢?16是硬编码的,给了它额外的间距,我不知道为什么它不是基于tableview(处理别人编写的代码)。但是我试着以tableview为基础,结果是一样的,以tableview为基础,然后找出16需要更改为什么。