0

我正在使用 UITextView 在 iPhone 应用程序中工作。我正在尝试根据其内容长度增加 UITextView 的高度。它工作正常。但是,当 uitextview 的高度增加时,UITextView 应该改变向上的高度而不是增加向下的高度。

这是我在项目中尝试的代码,

    baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, 320, 50)];
    baseView.backgroundColor = [UIColor lightGrayColor];
    [self.view addSubview:baseView];

    TextView = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 40)];
    TextView.backgroundColor = [UIColor whiteColor];
    TextView.layer.borderWidth = 2;
    TextView.delegate = self;
    TextView.font = [UIFont fontWithName:@"Helvetica" size:16];
    [baseView addSubview: TextView];

    -(void)textViewDidChange:(UITextView *)textView
   {
       CGRect frame = messageTextView.frame;
       frame.size.height = messageTextView.contentSize.height;
       TextView.frame = CGRectMake(20, 10, 280, frame.size.height);
       baseView.frame = CGRectMake(0, 50, 320, frame.size.height+20);
   }

当 UITextView 高度发生变化时,效果 textview 高度将在顶部增加。谁能帮我解决这个问题?提前致谢。

4

1 回答 1

0

在更改框架的方法中,还可以frame.origin.y编辑textView

-(void)textViewDidChange:(UITextView *)textView
{
   CGRect frame = messageTextView.frame;
   frame.size.height = messageTextView.contentSize.height;
   TextView.frame = CGRectMake(20, 0, 280, frame.size.height); //previous y was 10
   baseView.frame = CGRectMake(0, 50, 320, frame.size.height+20);
}

尽管如此,我相信您知道当您将其添加到视图时,您只有 10 个像素textView可以上升。BaseView

于 2012-07-05T13:43:34.800 回答