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