1

我在滚动视图上使用 UITextView ...我希望它在我写东西时自动扩展......但我无法做到......

textViewBusiness = [[UITextView alloc] initWithFrame:CGRectMake(25,332,268,60)];
textViewBusiness.text=strMyBusiness;
textViewBusiness.editable=NO;
textViewBusiness.font = [UIFont fontWithName:@"Arial" size: 17.0];
textViewBusiness.layer.borderWidth = 2.0f;
textViewBusiness.layer.borderColor = [[UIColor grayColor] CGColor];
textViewBusiness.backgroundColor = [UIColor clearColor];
[textViewBusiness setTextColor:[UIColor blackColor]];
[self.scrollView addSubview: textViewBusiness];

CGRect frame = textViewBusiness.frame;
frame.size.height = textViewBusiness.contentSize.height;
textViewBusiness.frame = frame;

这段代码对我不起作用...

谢谢

4

3 回答 3

5

确保设置了文本字段的委托...

someTextField.delegate = self;

然后在相应的文本字段委托方法中调整 textView 的大小。

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

- (void) textViewDidEndEditing:(UITextView *)textView;

您在上面添加的代码是正确的。只要确保它在正确的位置。

- (void)textViewDidChange:(UITextView *)textView
{
   CGRect frame = textView.frame;
   frame.size.height = textView.contentSize.height;
   textView.frame = frame;
 }

动态展开 UITextView

于 2012-05-16T11:23:12.937 回答
1

您的代码将无法正常工作。

您需要将代码分成 2 个片段,然后将它们放在适当的位置,然后您的代码应该可以工作。

片段 1(在我的测试中,我将此片段放在 viewDidLoad 中):

textViewBusiness = [[UITextView alloc] initWithFrame:CGRectMake(25,332,268,60)];
textViewBusiness.text=strMyBusiness;
textViewBusiness.editable=NO;
textViewBusiness.font = [UIFont fontWithName:@"Arial" size: 17.0];
textViewBusiness.layer.borderWidth = 2.0f;
textViewBusiness.layer.borderColor = [[UIColor grayColor] CGColor];
textViewBusiness.backgroundColor = [UIColor clearColor];
[textViewBusiness setTextColor:[UIColor blackColor]];
[self.scrollView addSubview: textViewBusiness];

确保上面的片段运行,并且您的文本视图显示在屏幕中,然后运行第二个片段。如果你的文本视图没有显示在屏幕上,那么 contentView 没有被初始化,并且高度是未定义的。

片段 2(在我的测试中,我将此片段放在 viewDidAppear 中):

CGRect frame = textViewBusiness.frame;
frame.size.height = textViewBusiness.contentSize.height;
textViewBusiness.frame = frame;

祝你好运!

于 2012-05-16T11:31:22.907 回答
0

HPGrowingTextViewUITextView随着文本增长/缩小并在内容达到一定数量的行时开始滚动的。类似于 Apple 在 SMS 应用程序中使用的那个。请参阅链接以获取小型(过时的)截屏视频。

于 2012-05-16T11:25:41.940 回答