如果放置在尺寸为200 x 460像素,字体Courier的UITextView中,我想确定某个文本字符串的尺寸(尤其是行数)。
我试着调用以下方法来获取一个我可以显示的整数。但是,它不起作用(xCode告诉我在初始化中我有不兼容的类型):
NSString *temp2String;
temp2String = [NSString stringWithFormat:@"%@",[textView text]];
int strSize = [temp2String sizeWithFont:@"Courier" constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];
NSString *temp2 = [[NSString alloc] initWithFormat:@"Size of string: %d", strSize];
textViewSize.text = temp2;
[temp2 release];
我是初学者,今天早些时候我发布了一个类似的问题,但我仍然无法弄清楚如何让CGSize工作并给我我需要的答案。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
CGSize
是一个结构。它包含两个浮点数,名为“height”和“width”。
CGSize strSize = [temp2String sizeWithFont:@"Courier" constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"Height %f, width %f", strSize.height, strSize.width);
答案 1 :(得分:1)
CGSize是一个结构(来自CGGeometry.h):
struct CGSize {
CGFloat width;
CGFloat height;
};
因此,您需要做的就是获取它并显示您需要的任何维度;
CGSize strSize = [temp2String sizeWithFont:@"Courier" constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];
按照你的例子(注意尺寸以浮点值给出):
NSString *temp2 = [[NSString alloc] initWithFormat:@"Width of string: %f", strSize.width];
textViewSize.text = temp2;
[temp2 release];