UITextView 不为 iPhone 调整大小

Posted

技术标签:

【中文标题】UITextView 不为 iPhone 调整大小【英文标题】:UITextView not Resizing for iPhone 【发布时间】:2013-03-23 21:21:23 【问题描述】:

我已经发布了一款适用于 iPad 的应用程序,并且我正在努力使其具有普遍性。我有一个 UITextView,我想调整它的大小以适应它的内容。 TextView 通过故事板创建并通过 IBOutlet 引用。我阅读了这个问题的答案How do I size a UITextView to its content? 并正在使用代码来调整 TextView 的大小。这段代码在 iPad 上完美运行,但是当我在 iPhone 上运行它时,它不会调整大小。我已经在这个问题上工作了好几个小时,它一直在杀死我。

//self.speciesDescription is the TextView in Question here:

//set the text
self.speciesDescription.text=[self.modal getdescriptionForSpecies:self.plantDisplayed];

//call the method below
[self resizeTextView:self.speciesDescription];

//resizes the text view to fit the text
-(void)resizeTextView:(UITextView *)textView 
    CGRect contentFrame=textView.frame;
    contentFrame.size.height=textView.contentSize.height;
    textView.frame=contentFrame;

如果我在尝试调整大小之前在 TextView 上调用 initWithFrame: 可以正常工作,但如果我不必这样做,它会为我节省大量时间和代码。 StoryBoard 不会自动调用 initWithFrame: 吗?

编辑:我今天进行了一些测试,发现 textView 的 contentSize 属性总是宽度为 0,高度超过 16000。任何想法为什么会这样?

【问题讨论】:

【参考方案1】:

故事板使用initWithCoder: 构造函数初始化其视图,而不是initWithFrame:。如果您进行一些自定义初始化,请确保在 initWithCoder: 方法中进行。

【讨论】:

你知道为什么它可以在 iPad 上运行,但在 iPhone 上不行吗? 我没有看到你的代码。我不知道你为你的视图做了什么自定义初始化。也许你有一些特定于设备的代码在 iPad 上可以正常工作,但在 iPhone 上却不行。

以上是关于UITextView 不为 iPhone 调整大小的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 2 中以编程方式调整 UITextView 的大小以扩大其宽度

UITextView 以编程方式调整大小,但随后设置为旧的故事板值。

iphone:如何调整视图及其所有子项的大小(在键盘弹出的情况下)?

在 UITableViewCell 中调整 UITextView 的大小

UITextView 文本空间在调整大小时变小

通过 UITextView 内容大小调整 UITableView 单元格的大小