我使用下面的代码从字符串长度计算标签的高度。我使用的是xcode 5.0,它在iOS 6模拟器中运行良好,但在iOS 7中运行不佳。
NSString* str = [[array objectAtIndex:i]valueForKey:@"comment"];
CGSize size = [className sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
Height_1 = size.height;
如果iOS 7有任何解决方案,请提供帮助。提前致谢
sizeWithFont
已弃用。使用
[string sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]}];
代替
尝试使用此
#define FONT_SIZE 15.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 20.0f
NSString *text;
CGSize constraint;
CGSize size;
CGFloat height;
text = [[array objectAtIndex:i]valueForKey:@"comment"];
constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGRect textRect = [text boundingRectWithSize:constraint
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:FONT_SIZE]}
context:nil];
size = textRect.size;
height = size.height;
这里有一个用于计算iOS6和iOS7高度的解决方案,我通过了一些参数使其可重用。
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
/**
* This method is used to calculate height of text given which fits in specific width having font provided
*
* @param text Text to calculate height of
* @param widthValue Width of container
* @param font Font size of text
*
* @return Height required to fit given text in container
*/
+ (CGFloat)findHeightForText:(NSString *)text havingWidth:(CGFloat)widthValue andFont:(UIFont *)font
{
CGFloat result = font.pointSize + 4;
if (text)
{
CGSize textSize = { widthValue, CGFLOAT_MAX }; //Width and height of text area
CGSize size;
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
//iOS 7
CGRect frame = [text boundingRectWithSize:textSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{ NSFontAttributeName:font }
context:nil];
size = CGSizeMake(frame.size.width, frame.size.height+1);
}
else
{
//iOS 6.0
size = [text sizeWithFont:font constrainedToSize:textSize lineBreakMode:NSLineBreakByWordWrapping];
}
result = MAX(size.height, result); //At least one row
}
return result;
}
希望这有所帮助,是的,任何建议都是值得赞赏的。快乐编码:)
对于iOS7及以上使用以下方法。
+ (CGSize)findHeightForText:(NSString *)text havingWidth:(CGFloat)widthValue andFont:(UIFont *)font {
CGSize size = CGSizeZero;
if (text) {
//iOS 7
CGRect frame = [text boundingRectWithSize:CGSizeMake(widthValue, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{ NSFontAttributeName:font } context:nil];
size = CGSizeMake(frame.size.width, frame.size.height + 1);
}
return size;
}
我有以下问题。我把这个VBox包装在一个锚窗格中: 我想得到这个vbox的显示高度(即使在例如调整它周围的锚面板大小之后)。) 所以我尝试了以下方法: 但是由于某些原因,getHeight()只返回0。所以我如何得到那个vbox的高度?
如何在 iOS 7 中计算带有 UI 文本视图的 UI 表查看器的高度? 我找到了很多类似问题的答案,但是< code>sizeWithFont:参与了每一个解决方案,这个方法已经被否决了! 我知道我必须使用但是如何计算我的TextView显示整个文本所需的高度呢?
在Android系统中如何获得屏幕的可用高度?我需要的高度减去状态栏/菜单栏或任何其他可能在屏幕上的装饰,我需要它为所有设备工作。另外,我需要在onCreate函数中了解这一点。我知道这个问题以前有人问过,但我已经尝试过他们的解决方案,但没有一个奏效。以下是我尝试过的一些事情: 我已经在API7-17上测试了这段代码。不幸的是,在API 13的底部水平和垂直都有额外的空间,而在API 10、8和7
我有一个文件里面有很长的文本。我想用以下代码将此文本放在NSString中: 此代码在具有 Xcode 5 的 Mac OSX 10.8 上工作正常,但在我使用 Xcode 8.3.3 的新 Mac OSX 10.13 上,对象 myString 仅包含长文本的第一部分。 这是一个新的问题,还是在新的OSX体系中发生了我不知道的变化?OSX 10.13或Xcode 8.3.3上的NSString对
问题内容: React渲染元素后如何获取元素的高度? HTML ReactJS 结果 它正在计算渲染之前的容器高度(36像素)。我想获得渲染后的高度。在这种情况下,正确的结果应为18px。jsfiddle 问题答案: 看到这个小提琴(实际上更新了您的) 您需要钩住在render方法之后要运行的对象。在那里,您可以获得元素的实际高度。
问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。