UITextView像iOS Mail App一样增加了高度

时间:2016-07-08 16:37:37

标签: ios objective-c iphone uitextview

我有一个问题,我会在我的iOS应用程序中多个UITextField,但由于它不可能我使用可编辑的UITextView,我设置了我的"占位符&#34 ;和我的财产,这是代码:

- (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之下和之上有任何物体,所以当高度增加时它们应该移动。我该如何解决这个问题呢?

非常感谢。

1 个答案:

答案 0 :(得分:1)

首先,禁用UITextView的可滚动。

两个选项:

  1. 取消选中.xib中已启用的滚动。

  2. [TextView setScrollEnabled:NO];

  3. 创建一个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;