0

私は iPhone で iOS リマインダー アプリを使用していますが、テーブルビュー内で、新しい行に折り返すことができるテキストを入力し、リマインダーのテキストを入力し続けることができることに気付きました。セルの高さが、指定されたリマインダー テキストのサイズに合わせて変化することに気付きました。私の質問は、これが UILabel で実行できることはわかっていますが、UILabel でテキストを編集および入力することはできませんか? だからそれはUITextFieldでなければなりませんが、UITextFieldでは単語を新しい行に折り返すことができないと思いましたか? 1行で縮小し続けただけだと思いましたか?それで、私はここで何が欠けていますか?

4

2 に答える 2

1

ほとんどの場合UITextView、複数のテキスト行を許可するを使用します。UITableViewCell次に、のデリゲートメソッドを確認することで、テキストが次の行に折り返されるときの高さを変更できますUITextView

于 2012-08-29T13:52:17.503 に答える
0

UITextView を試してみましたか?自動ラッピングを行いますが、テーブル セルの高さを自動でサイズ変更するには、textViewDelegate didReplaceString メソッドを使用する必要がある場合があります。

// goes inside the UITextView didReplaceString method
// assumes expectedTextSize is a CGSize struct (like this CGSize expectedTextSize)
expectedTextSize = [myTextView.text sizeWithFont:[UIFont fontWithName:"Arial" size:12] constrainedToSize:CGSizeMake(200, 999999) lineBreakMode:UILineBreakModeWordWrap];

// then in your tableView:heightForRow: table view delegate method
return expectedTextSize.height;
于 2012-08-29T14:07:06.150 に答える