【问题标题】:UITextView increase hight like iOS Mail AppUITextView 像 iOS Mail App 一样提高高度
【发布时间】:2016-07-08 16:37:37
【问题描述】:

我有一个问题,我会在我的 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];
    }
}

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

非常感谢。

【问题讨论】:

  • 如果你想增加高度,只需要改变textview的frame或者使用autolayout。

标签: ios objective-c iphone uitextview


【解决方案1】:

首先,禁用 UITextView 的可滚动。

两种选择:

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

  2. [TextView setScrollEnabled:NO];

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

示例代码sn-p:

 [TextView setText:song.lyrics];

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

 TextViewHeightConstraint.constant = sizeThatFitsTextView.height;  

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多