如何在目标c中获得一个特定高度的string
嗨在我的应用程序,我有一个冗长的string。 从那个string中,我必须子string的一部分string高度是500.所以,请让我知道如何获得一个string的一部分。
为了您的参考,我分享了我用来获取string高度的代码
CGSize finalStringSize = [finalString sizeWithFont:font constrainedToSize:CGSizeMake(195,length) lineBreakMode:NSLineBreakByWordWrapping];
这里finalstringSize.height是500.现在任何一个帮助我从最终的string中得到一个子string,那个子string的高度是500。
请帮帮我。
使用此代码设置特定的内容高度:
NSString *finalString=@"d jdsfhksd fsdfhjkds fkdhsfjkdsf kdsfhjkdsf sdjkfsdfh dsfhsfisudi udsifhisdhf sdhfkh sdkf dshf ksdh fkhsd khsdfh sdkhf sdhkfhsdjkfhdshf sdfhdshf hsdfh ksdhf kdhsf hsdkfhsdkhf sdf hsdkfh dsf sdkhf ksdhf hsdfh sdhfksdhf sd ksdhsdh ksdh dhs hsdh ksdh dhs fhsdfh dsfsdfdf sdf sd sd dsf sd fsdf ds"; int length =200; UIFont *font=[UIFont fontWithName:@"Helvetica" size:17.0f]; NSString *firstPartString=[NSString stringWithString:finalString]; CGSize firstPartStringSize = [firstPartString sizeWithFont:font constrainedToSize:CGSizeMake(195,MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping]; while(firstPartStringSize.height > length) { firstPartString = [firstPartString substringWithRange:NSMakeRange(0, firstPartString.length-1)]; firstPartStringSize = [firstPartString sizeWithFont:font constrainedToSize:CGSizeMake(195,MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping]; } if(firstPartStringSize.height <= length) { while(![[firstPartString substringToIndex:[firstPartString length]-1] isEqualToString:@" "]) { NSLog(@"%@",[firstPartString substringFromIndex:[firstPartString length]-1]); if([firstPartString substringFromIndex:[firstPartString length]-1].length !=0 && ![[firstPartString substringFromIndex:[firstPartString length]-1] isEqualToString:@" "]) { firstPartString = [firstPartString substringWithRange:NSMakeRange(0, firstPartString.length-1)]; } else { break; } } } NSString *resultStr=firstPartString; int secondPartStringLength=[finalString length]-firstPartString.length; NSRange secondPartStringRange=NSMakeRange(firstPartString.length, secondPartStringLength); NSString *secondPartString=[finalString substringWithRange:secondPartStringRange];
根据我的评论,你可以试试这个:
CGSize finalStringSize = [finalString sizeWithFont:font constrainedToSize:CGSizeMake(195,length) lineBreakMode:NSLineBreakByWordWrapping]; while( finalStringSize.height > 500 ){ finalString = [finalString substringWithRange:NSMakeRange(0, finalString.length-1)]; finalStringSize = [finalString sizeWithFont:font constrainedToSize:CGSizeMake(195,length) lineBreakMode:NSLineBreakByWordWrapping]; } NSLog(finalString); // and that is your end string...
根据下面的注释,可以使用CTFramesetterSuggestFrameSizeWithConstraints
方法来查找可以在[finalString substringWithRange:range];
使用的[finalString substringWithRange:range];
得到你的最终结果。
该方法的文档在这里 。
- 更新查询时,ios中的“数据库locking”错误
- App Store优化-开发人员可以做什么?
- 按URL的前缀不同的动作
- 我怎样才能从度数转换为弧度?
- WKWebview – Javascript和本地代码之间的复杂通信
- iOS在didSelectItemAtIndexPath上展开CollectionView
- UIApplication.statusBarStyle在viewWillAppear和viewDidAppear之间变化
- navigationController.viewControllers在iOS 8.2中以不同的方式工作
- UIPageViewController / TextKit在分页上回stream文本