問題タブ [heightforrowatindexpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
580 参照

ios - heightForRowAtIndexPath: 文字列に改行が含まれている場合の計算が正しくありません\n

grouped に挿入する次の文字列がありますUITableViewCell

\n が含まれていることに注意してください。文字列に改行が含まれている場合、heightForRowAtIndexPath:メソッドで間違った高さが返されます。

改行を含まないその他の文字列は正常に機能します。高さを計算するときに改行を考慮せず、高さが短すぎる理由はありますか?

ありがとう

0 投票する
2 に答える
1212 参照

ios - テーブル ビュー、静的セル、セルの高さの変更

動的TableViewを使用すると、次を使用してセルの高さを設定できることを理解しています... tableView:heightForRowAtIndexPath:

ただし、静的テーブル ビュー (動的ではない) を使用している場合、セクションを使用して、セルの高さをプログラムで 0 に設定したいと考えています。

}

質問は別の方法で、indexPath.section がある場合... どうすれば... indexPath.Section.row のようなことを行うことができますか?

0 投票する
1 に答える
411 参照

uitableview - デフォルトの高さを返すUITableViewの初期ロード。heightForRowAtIndexPathが実装されています

このプロジェクトでは、Webサービスからのデータをテーブルに入力しています。より多くのデータが利用可能になると、テーブルがリロードされます。heightForRowAtIndexPathタイトル文字列のサイズに応じてセルのサイズを設定するために使用しています。54のMAXまたは文字列の高さを返します。奇妙なことに、テーブルがロードシーケンスを初めて実行すると、セルごとに44が返されます。セルの高さをに記録しますcellForRowAtIndexPath。2回目にリロードが呼び出されると、正しいセルの高さが得られます。その結果、セルのサブビューは最初は適切ではなく、その後非常に突然配置されます。誰かがそれについて何か洞察を持っているかどうか疑問にUITableView思うことは私を正しい方向に向けるかもしれません。ありがとう!

0 投票する
1 に答える
3341 参照

ios - UITableViewCell フレームの高さは常に 44px です

100 を返す heightForRowAtIndexPath: メソッドを使用してセルの高さを設定しています。しかし、cellForRowAtIndexPath メソッドでは、セルのフレームの高さは常に 44px です。

以下は私のコードです。

NSLog ステートメントは「44px 44px」を出力します。

このステートメントを使用して正しい高さを取得できます

0 投票する
0 に答える
180 参照

ios - uitextview で UITableViewCell の高さを取得する

同様の質問がたくさん見つかりましたが、答えはありませんでした。

iOS連絡先アプリケーションのノートセルのように、同じセルを実行しようとしています。左側にラベル、右側に uitextview があります。適切なセルの高さを設定できない場合、1 つだけ問題があります。デリゲートが最初にセルの高さについて尋ねたとき、私はこのメソッドを呼び出します:

しかし、すべてのデバイスとすべての向きで適切な高さを取得できません。助けてください。

0 投票する
2 に答える
1373 参照

ios - カスタム セルとラベルを使用した heightForRowAtIndexPath

カスタムUITableViewCellを作成していて、入力の長さに応じて可変の高さが必要な場合 (たとえば、Twitter リーダーなど)、どうすればこれを機能させることができますか?

ここで、標準の非カスタムセルに設定できる他の多くの例を見つけましたが、セルのメインテキストラベルは小さいなどなので、セルでこれらのメソッドのいずれかを使用しようとすると、さまざまな奇妙な結果が得られる (テキストがセルの下部に重なるなど)

セルを設計する標準化された方法はありますか (たとえば、Interface Builder でどのくらいの高さにする必要がありますか?)、ラベルがそのセルの幅の半分であるとしましょう.セルの高さを計算するにはどうすればよいですか?そのラベルに読み込まれた文字列を表示する必要がありますか? ここで私が見つけた方法は、通常のセルではうまく機能しますが、奇妙な高さ、テキストの重なりなどでカスタムのものを台無しにします:こちらもよろしくお願いします!)

0 投票する
1 に答える
1371 参照

ios - 自動レイアウトを使用したカスタム UITableViewCell のサブビュー - xib なし、すべてコード内

自動レイアウト機能を使用してコードに追加されたカスタム UITableViewCell のサブビュー (検証済み)。ただし、これを行うことの全体的なポイントは、各テーブルビュー セルの高さを計算する必要がなく、デリゲート メソッド heightForRowAtIndexPath がテーブルビューの描画中に高さを期待することでした。

自動レイアウトを使用してコンテンツに基づいてこの高さを把握するにはどうすればよいですか?

また、私は実際にはバックグラウンド スレッドでこれを行うことはできません (またはできますか?) ため、たとえば 1000 レコードのリストに裏打ちされたこれを使用する UITableView がある場合、これには永遠に時間がかかります。そうですか?

0 投票する
4 に答える
4920 参照

ios - heightForRowAtIndexPathの後に、cellForRowAtIndexPathでセルの高さを設定しようとしています

heightForRowAtIndexPath以前に呼び出されたのでcellForRowAtIndexPath、内部から高さを変更したい場合は、変更cellForRowAtIndexPathできると思いました。できないようです。を介してテストしましたが、NSLog変更するcell.frame.size.heightと、変更はそこに適切に保存されますが、セル自体は新しいサイズになりません(設定したサイズを使用していheightForRowAtIndexPathます)。

後のある時点で呼び出されるセルの高さを調整する別の方法はありcellForRowAtIndexPathますか?そうでない場合、これを回避する別の方法はありますか?cellForRowAtIndexPath各セルに順番に画像をランダムに追加するかどうかをその場で決定しているので、使用する必要があります。

0 投票する
3 に答える
4005 参照

ios - cellForRowAtIndexPath は、セルがロードされてから再ロードされたときにセルを異なる高さと見なしますか?

序文: これはかなり抽象的な質問です。

セルの高さに応じて異なる画像を使用するセルがいくつかありUITableViewます (50px から 1000px までの高さで 50px 単位で)。cellForRowAtIndexPathアプリが最初にロードされたときに、最初の 3 つのセル (3 つすべてが画面上にあるかどうかに関係なく) の高さが 100px であると報告され、下にスクロールして再び上に戻ると、それらの高さが元に戻るという奇妙な問題が発生しています。正しい値に。画面上の高さの変更はなく、使用される画像のみが変更さcell.frame.size.heightれ、NSLogステートメントの値が変更されます。

私は と にログインしてheightForRowAtIndexPathおりcellForRowAtIndexPath、彼らが を離れたときに高さが正しいことを確認できますheightForRowAtIndexPath。しかし、 を入力するcellForRowAtIndexPathと、最初の 3 つの高さがすべて均一に 100 に設定されます。次に、これらの 3 つのセルが画面外になるまで下にスクロールし、次に上にスクロールすると、.height値が正しい値に変更されます。

要約すると、私の質問は次のとおりです。

これらの最初のいくつかのセルの値を変更する可能性のあるコードの最後heightForRowAtIndexPathと最初の間に呼び出されるコードはありますか?cellForRowAtIndexPathcell.frame.size.height

この問題が最初の 3 つのセルでのみ発生するのはなぜですか? そして、しばらくしてリロードすると元に戻るのはなぜですか? 再利用識別子が原因である可能性があると思いましたが、最初にロードされたときにまだその識別子が割り当てられているので、それは問題ではありませんか?

編集: 100px の高さは、ストーリーボードのプロトタイプ セルの行の高さから来ていると思います。それを 101px に変更すると、最初の 3 つのセルは最初は 101px になります。

編集:画像を設定するために使用しているコードは次のとおりです。この部分は機能していますが、操作する値が間違っています:

0 投票する
0 に答える
3246 参照

objective-c - 目的 c - 実行時にセルの高さを拡張する

カスタム セルがあり、そのラベルの 1 つを大きくして、[もっと見る] ボタンを追加するのに十分な大きさにすることができます。そのため、ラベルのコンテンツを 5 行に切り取り、必要に応じてコンテンツを展開するこのボタンを追加しています。

私の質問は: tableView の reloadData を使用せずにこれを行うことはできますか?

「もっと見る」ボタン(カスタムセル内)のタッチイベントでこのコードを試しました:

何も起こりません!セル行の高さ、つまりテーブル ビューのコンテンツの高さを拡張する方法が必要だと思います。

前もって感謝します、


エディション:リンクios でソリューションを確認しました - Twitter アプリのようにテーブル ビュー セルを展開します。このコードをカスタム セル (タッチ イベント) に適用しました。

現在、2 つの問題があります。1) reloadRowsAtIndexPaths が reloadData 全体を実行しています。2)カスタムセルは、セルの高さを知っている人です。このメソッドにアクセスすると、self.contentExpanded は常に NO になります。

***parentTableView メソッドは、セルの親 tableView への参照から取得されました


エディション 2: 問題が heightForRow にあるとは思わない。このメソッドがすべてのセルに対して呼び出されることは避けられません...

そしてカスタムセルで: