另一个(希望很容易)初学者的问题:我试图测量UITextView的大小,但是我对以下代码有一个很大的编译器错误:
NSString *temp2String;
temp2String = [NSString stringWithFormat:@"%@",[textView text]];
CGSize strSize = [temp2String sizeWithFont:@"Courier" constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];
NSString *temp2 = [[NSString alloc] initWithFormat:@"String width: %f", strSize.width];
textViewSizeW.text = temp2;
[temp2 release];
错误是:不兼容的Objective-C类型'struct NSString *',在传递sizeWithFont的参数1时需要'struct UIFont *':constrainedToSize:lineBreakMode:'来自不同的Objective-C类型“。
我很害怕,但这听起来像是对我来说很糟糕。我搞砸了弦乐和结构吗?我试着这么小心不要把它们混在一起(我早些时候弄错了......看到我之前的帖子)。
非常感谢任何帮助!
答案 0 :(得分:2)
简单来说,错误是“X方法的参数1是一个NSString对象,期望一个UIFont对象”。
所以,正确的代码是:
UIFont *strFont = [UIFont fontWithName:@"Courier" size:12];
CGSize strSize = [temp2String sizeWithFont:strFont constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];
答案 1 :(得分:0)
您正在使用 NSString类型“Courier”的参数调用sizeWithFont:方法。您需要使用[UIFont fontWithName:@"CourierBlah" size:12.0
实例化UIFont对象,并将 UIFont对象作为参数传递。
答案 2 :(得分:0)
goobledigook?很明显出了什么问题。
你传递了一个结构NSString(@“Courier”),但该方法需要一个struct UIFont。
我猜这仍然是textview问题。所以传递textview的字体。
CGSize strSize = [temp2String sizeWithFont:textView.font constrainedToSize:CGSizeMake(200, 10000)
lineBreakMode:UILineBreakModeWordWrap];