我正在我的设备上调试一个奇怪的文本换行问题,我已经跟踪了从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:
这是运行iOS5.0的模拟器:
正如你所看到的,它是在一个而不是另一个包装。为了防止在我的iOS4设备上换行,我必须改变这一行:
CGRect textViewFrame = CGRectMake(xOffset, yOffset, messageDimensions.width+16, messageDimensions.height+16);
填充+17不是+16。
任何人都可以告诉我这是否是一个已知错误,并且如果{I}填充量在UIKit的某个地方是一个常量值,我可以参考而不是硬编码吗?
谢谢!