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];

上記のフラグメントが実行され、テキスト ビューが画面に表示されていることを確認してから、2 番目のフラグメントを実行します。テキスト ビューが画面に表示されない場合、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 に答える