3

オリジナル

私は現在、ユーザーが UITextView で最大 50pt のフォントのサイズを変更できるアプリに取り組んでいます。現状では、この UITextView のテキストを好きなだけ編集することもできます (私の上司は、あらゆる種類の規範的な動作を制限したいと考えています)。UITextView は、テキストの量に合わせて垂直方向に動的にサイズ変更されます。すべて順調です。ただし、この UITextView の高さが特定のサイズを超えると、その後の文字は追加されますが、UITextView をスクロール可能にしない限り、非表示になります。

これはエッジケースであることを付け加える必要があります。ただし、アプリはこの種の動作を奨励しているため、この制限に遭遇する可能性があります。

UITextView の高さに実際に制限があると考えるのは正しいですか? それとも、問題は潜在的に別のものですか?

編集

わかりました、多分私は自分の状況を誤解しています。textView が tableViewCell 内にあるという事実を考慮できませんでした。実際に行っているのは、textView のサイズが大きくなるにつれてセルのサイズを変更することです。tableViewCell の高さに制限はありますか?

私の問題への回答

@jere と @A-Live の回答に感謝します。私はそのようなばかのように感じるのを知っています。

A-Live は最大フロート値について指摘し、突然、私が犯した明らかで露骨な間違いに気づきました。

textView のサイズを適切に変更するために、制約を使用して CGSize が確立されます。高さを必要なだけ高くできるようにするために、高さの制約には到達不可能と思われる高い数値 (1000) が使用されました。ご想像のとおり、この目的には 1000 では不十分だったため、textView が不足していました。これが、コードを提供することが重要な理由だと思います。

CGSize textSize = [textView.text sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width - PADDING * 2, 1000.0f) lineBreakMode:UILineBreakModeWordWrap];

更新された質問に対する最も正確な回答は@jereです。これは私に指摘されているため、セルサイズが「2009」の魔法の数に達するのを防ぐ必要があります.

4

2 に答える 2

7

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPathすべてではなく一部のセルのみに高さを設定する場合は、デリゲート メソッドを使用して、行に必要な高さを返す必要があることに注意して ください。

プロパティを使用することもできrowHeightますが、それはテーブル ビュー全体に適用されます。

デリゲート メソッドに関するApple ドキュメントの興味深い部分を以下に示します。

重要: 基本的な実装の詳細により、2009 より大きい値を返すべきではありません。

だから私はそれが最大値か何かでなければならないと思います。とにかく、セルが200または300pxを超えると、ちょっとクレイジーになります...

于 2012-10-31T14:42:47.577 に答える
0

UITextView クラスには max length プロパティがないため、TextView に表示するのに必要な数の文字を入力できます。

于 2012-10-31T12:21:49.037 に答える