我想我已经找到了sizeWithFont的一个边缘情况:constrainedToSize:在视网膜显示器上,它有时(似乎基于自动换行)返回高于实际需要的高度1行,更重要的是它实际绘制的高度.
注意:我正在使用的真实代码被隐藏在高性能的中心手绘可变高度表视图单元代码中,因此我将问题简化为尽可能简单的示例代码.(当我试图回答我的问题以外的其他问题时请注意这一点:-)
这个示例UIView填充它的内容,测量文本以适合(包装),填充矩形,然后绘制文本.
在视网膜设备(或模拟器)上,高度返回1线太高,但在视网膜前设备(或模拟器)上返回正确的高度.
我非常感谢任何人可能拥有的任何洞察力,因为这是我想修复的错误!
非常感谢!
-Eric
- (void)drawRect:(CGRect)rect {
NSString * theString = @"Lorem ipsum dolor sit ameyyet, consectetur adipiscing elit. Etiam vel justo leo. Curabitur porta, elit vel.";
UIFont * theFont = [UIFont systemFontOfSize:12];
CGSize theConstraint = CGSizeMake(rect.size.width - 20, rect.size.height - 20);
CGSize theResultSize = [theString sizeWithFont:theFont constrainedToSize:theConstraint];
// dump the measurements
NSLog(@"returned a size h = %f, w = %f", theResultSize.height, theResultSize.width);
// fill the whole rect
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor yellowColor] set];
CGContextFillRect(context, rect); …Run Code Online (Sandbox Code Playgroud) 我终于升级到Lion(来自SL&Xcode 4.2).我现在正在运行:
我已经退出当前的生产应用程序,并创建了一个简单的单视图通用hello world应用程序,试图让某种形式的模拟器调试工作.
使用我的新简单应用程序,我仍然可以在设备上进行调试,但不能在我安装的任何模拟器上进行调试.它启动模拟器,最终安装正在测试的应用程序,但从不附加到它,应用程序永远不会进行启动图像.(一个说明,我可以从模拟器启动应用程序...所以,它没有得到建立和正确安装,虽然花了一点时间比我习惯用SL&4.2)
Xcode就坐在那里等待连接.令人担忧的是,我无法停止这种(停止按钮,试图关闭项目,停止任务)在所有的,必须强制退出Xcode的.
有谁知道发生了什么事?任何帮助将非常感谢!!
-Eric