SOでこれに関連する多くの質問を見てきましたが、私の質問には関係ありません。
メッセージ機能を備えたアプリを作成します。Apple にはメールがあり、LinkedIn にはアプリのメール機能があるのと同様に、UITableView
3 行の が必要です。3 番目の行にはUITextView
、ユーザーの入力に応じて拡大する必要がある があります。私のコードは以下の通りです:
- (void)textViewDidChange:(UITextView *)textView {
if (bodyText.contentSize.height > currentContentHeight) {
currentContentHeight = bodyText.contentSize.height;
[tblView beginUpdates];
[tblView endUpdates];
[bodyText setFrame:CGRectMake(0, 0, 310.0, currentContentHeight)];
bodyText.selectedRange = NSMakeRange(textView.text.length - 1, 0);
} else {
currentContentHeight = minimumContentHeight;
[tblView beginUpdates];
[tblView endUpdates];
}
}
iPhone で Return キーを押すと、iPhone がダウンし、問題なく動作します。問題は、 の中央またはその他の中間部分に移動すると、 が正しくUITextView
取得されないため、おかしな動作が発生するように見えることです。contentSize
例えば:
- リターンを10回押します
- 5 行目に移動し、「dog」と入力します
- それが
contentHeight
理にかなっている場合、それはその5行目に基づいていますか?
現在、すべてのテキストに基づいて計算する方法はありますか? 上記で見逃したものがある場合はお知らせください。私は以下を広く読みました:
http://dennisreimann.de/blog/uitextview-height-in-uitableviewcell/
https://stackoverflow.com/questions/985394/growing-uitextview-and-uitableviewcell