为什么UITextView contentInset / padding在模拟器和设备上有所不同?

时间:2012-09-21 06:04:37

标签: ios layout uitextview padding

我正在我的设备上调试一个奇怪的文本换行问题,我已经跟踪了从XCode 4开始的UITextView contentInset值中的某种修改。

以下是我用来展示此错误的示例代码:

NSString *message = @"How are you doing?";
CGSize messageDimensions = [message sizeWithFont:[UIFont systemFontOfSize:15.0]
                               constrainedToSize:CGSizeMake(self.view.frame.size.width,9999)
                                   lineBreakMode:UILineBreakModeWordWrap];
CGFloat xOffset = 20;
CGFloat yOffset = 20;

CGRect textViewFrame = CGRectMake(xOffset, yOffset, messageDimensions.width+16, messageDimensions.height+16);

self.textView = [[[UITextView alloc] initWithFrame:textViewFrame] autorelease];
self.textView.font = [UIFont systemFontOfSize:15.0];
self.textView.text = message;
self.textView.editable = NO;

[self.view addSubview:self.textView];

附件是在iOS 5模拟器和iPhone 4上运行代码的两个屏幕截图。

这是运行iOS5的iPhone 4:

device

这是运行iOS5.0的模拟器:

simulator

正如你所看到的,它是在一个而不是另一个包装。为了防止在我的iOS4设备上换行,我必须改变这一行:

CGRect textViewFrame = CGRectMake(xOffset, yOffset, messageDimensions.width+16, messageDimensions.height+16);

填充+17不是+16。

任何人都可以告诉我这是否是一个已知错误,并且如果{I}填充量在UIKit的某个地方是一个常量值,我可以参考而不是硬编码吗?

谢谢!

0 个答案:

没有答案