ios - UITextView 像 iOS 邮件应用程序一样增加高度

标签 ios objective-c iphone uitextview

我有一个问题,我会在我的 iOS 应用程序中使用多个 UITextField,但是因为不可能我使用可编辑的 UITextView,我在其中设置了我的“占位符”和我的属性,这是代码:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    NSString *presentText = self.textFieldObject.text;

    if (![presentText isEqualToString:@"Message..."] && presentText != nil) 
    {
        self.textFieldObject.textColor = [UIColor blackColor];
    } 
    else 
    {
       self.textFieldObject.text = @"";
       self.textFieldObject.textColor = [UIColor blackColor];
    }
    return YES;
}

-(void)textViewDidChange:(UITextView *)textView
{

    if(self.textFieldObject.text.length == 0)
    {
        self.textFieldObject.textColor = [UIColor colorWithRed:215.0/255.0 green:215.0/255.0 blue:215.0/255.0 alpha:1.0];
        self.textFieldObject.text = @"Message...";
        [self.textFieldObject resignFirstResponder];
    }
}

当我编写更多文本(如 iOS 邮件应用程序或 Facebook 帖子)时,我希望 UITextView 增加其高度。 在 UITextView 的下方和上方有任何对象,因此它们会在高度增加时移动。我该如何解决这个问题?

非常感谢。

最佳答案

首先,禁用 UITextView 的滚动。

两种选择:

  1. 取消选中“在 .xib 中启用滚动”。

  2. [TextView setScrollEnabled:NO];

创建一个 UITextView 并将其与 IBOutlet (TextView) 连接。 添加一个具有默认高度的虚拟 UITextView 高度约束,将其与 IBOutlet (TextViewHeightConstraint) 连接。 当您异步设置 UITextView 的文本时,您应该计算 UITextView 的高度并为其设置 UITextView 的高度约束。

示例代码片段:

 [TextView setText:song.lyrics];

 CGSize sizeThatFitsTextView = [TextView     sizeThatFits:CGSizeMake(TextView.frame.size.width, MAXFLOAT)];

 TextViewHeightConstraint.constant = sizeThatFitsTextView.height;  

关于ios - UITextView 像 iOS 邮件应用程序一样增加高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271650/

相关文章:

ios - Xamarin.iOS ZXing.Net.Mobile 条码扫描器

objective-c - 使用 C 库的架构 x86_64 的 undefined symbol

ios - 缩小自定义 UITableViewCell 中的自定义 textLabel 和 detailTextLabel

ios - TableView 不附加 TableView 单元格

ios - 设置 Realm 架构版本

iphone - 将图像添加到导航栏

ios - 应用程序卡住但 CPU 使用率随时间增加

objective-c - 传入自定义选择器实现

objective-c - 将毫秒转换为分钟

iphone - UITableView pushViewController 在选择一行时