問題タブ [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 投票する
2 に答える
1237 参照

uitableview - -tableView:cellForRowAtIndexPath:? から「indexPath」でカスタム UITableViewCell の高さを計算します。

カスタム クラス内のカスタムの高さを調整します。メソッドを使用してセルの高さを調整するUITableViewCell必要があると思います。-tableView:cellForRowAtIndexPath:カスタムセルクラスでカスタムセルの高さを調整し、指定されたインデックスパスでセルを取得してキャストし、そのセルの高さを次のように返そうとしています:

しかし、スタックオーバーフローが発生しています。これを回避するより良い方法は何ですか?

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

ios - IndexPathForCell および IndexPathForRowAtPoint のクラッシュ

私はUITableViewController静的にグループ化されたセルを持っています。特定のビューで、一部のセルを削除したいと考えています。ただ非表示にすると空白になるので、代わりにセルのrowHeighttoを設定したいと思い0ます。非表示にしたいセルのindexPathを取得できないように見えるため、これを行うのに問題があります。IB接続を介して参照しています。読んだ後、これを行う最良の方法はheightForRowAtIndexPathメソッドを使用することです。これが私のコードです:

この前は、 を試しIndexPathForCellていましたが、クラッシュすることもありました。私が読んだことからheightForRowAtIndexPath、セルが見えない場合でも機能するはずです。クラッシュすると、デバッガーにも何も表示されません。

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

ios - 非表示を解除した後、表のセルに非表示のコンテンツが表示されない場合がある

カスタムセルを持つテーブルがあります。セルには2つのUIViewがあり、上部は常に表示され、下部は非表示になっています。

cellCellForRowAtIndexPathが呼び出されると、すべてのセルの高さが縮小され、最上位の UIView だけが表示されます。

ユーザーがセルをクリックすると、そのセルが展開され、2 番目の UIView が再表示されます。問題は、セルを最初にクリックしたときに 2 番目の UIView が表示されない場合があることです。

セルをもう一度クリックすると、すべてが消えてからもう一度クリックすると、常に完全に表示されます。下にスクロールして別のものを選択し、最初にクリックすると表示されないか、間違った場所に表示されます。さらに 2 回クリックすると完璧です。

これは ReusableCell の問題だと思いますが、回避する方法がわかりません。

したがって、セルをクリックすると、次のようなdidSelectRowが呼び出されます

ご覧のとおり、 reloadData と BeginUpdates の両方を試しましたが、まだ機能しません。これは、選択時にアルファを 0 にしてから 1 にする必要があるため、非表示/非表示を解除しているためですか? これは再利用可能なセルのものですか?

完全を期すためにああ。すべての高さが異なるテーブルがあることに気付くかもしれません。これが、2 番目の UIView の Y を変更する理由です。

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

uitableview - iOS 7 uitableviewcell の描画の変更

iOS 7 でカスタム セル描画に問題があります (iOS 6 および 5 では正常に動作しています)。

heightForRowAtIndexPath では、最後のセルが次のセクションのヘッダーと重なる必要があるため、各セクションの最後の行のセルの実際の高さよりも小さい高さを返しています。

heightForRowAtIndexPath から返される高さだけが描画されているため、私のセルは下部でカットされるため、Apple は iOS 7 で描画の改善または何かを行ったようです。

どんなアイデアでも大歓迎です。

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

objective-c - コンテンツに応じてプログラムでセルの高さを設定する方法

テキストまたはテキスト+画像があるUITableViewがあります。

テキストと画像に応じてセルの高さをやりたい。

画像のサイズを固定しています (幅 300 x 高さ 200 としましょう)。

コンテンツに基づいてセルの高さを設定するにはどうすればよいですか。

テキストがある場合は高さを 200 ピクセルにし、テキスト/画像がある場合は高さ 400 ピクセルにします。

このような状況で高さを設定する方法はありますか。

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

ios - セル内のオブジェクトに基づくカスタム セルの高さ

カスタム セルを作成し、その中に を配置しました。テキストの長UITextViewさに基づいてセルの高さを変更したいと考えています。UITextViewを使用してセルの高さを静的に変更する方法は知っheightForRowAtIndexPathていますが、コンテンツに基づいて動的に変更することはできません。

このフォーラムや他のいくつかのフォーラムで約 12 のトピックを読みましたが、探していた答えが見つかりませんでした。

何か案は?

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

ios - 画像サイズに基づくセル行の高さ

API を使用していて、画像の高さに基づいて高さを調整する必要があります。UITableViewCell

私のif声明は次のようにする必要があります。

  • 画像がない場合は高さを 140 に設定し、それ以外の場合は...
  • 画像がある場合は、高さを 106 + imageHeight に設定します

私はこれを機能させることができないようです、何かアイデアはありますか?

必要に応じて追加のコードを投稿します、ありがとう!

「このアーキテクチャとプラットフォームの定数サイズではないインターフェイス 'NSString' へのポインターの算術演算」というエラーが表示されreturn 106 + imageHeight;、その場所に到達するとアプリがクラッシュします。

編集: 配列の内容 (API からの JSON)

Images.h

Images.m

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

ios - EstimatedHeightForRowAtIndexPath は、実際に行の最終的な「正しい」高さを変更できますか?

私は、estimatedHeightForRowAtIndexPath を使用するときの驚くべき問題または直観に反する動作を発見しました

(1) テーブルの行の高さが大きく異なります。最終結果は、111 から約 400 の範囲になります。

(2) 各行の高さを完全に計算します。私はこれらを配列で手元に持っています。つまり、キャッシュされています。

{これはまさに、Apple エンジニアが現在推奨していることに注意してください...例、ポイント 5 .. UITableView で自動レイアウトを使用して、動的なセル レイアウトと可変行の高さを実現する}

(3) heightForRowAtIndexPath が高さを要求する場合、絶対に正しい高さを指定します。

(4) セルを構築するときは、正確に正しい高さに構築します ((2) と (3) のように)。

{注 - もちろん、最終的にセルの高さを調整するのは iOS であり、「私」ではありません。}

これはすべて完璧に機能します。

つまり、各セルは iOS によって、heightForRowAtIndexPath で指定された正確な高さで構築されます。

さて、コードを追加します...

実際、テーブルはもはや機能しません.... 行の高さがランダムになります!!!

この信じられない行動を見た人はいますか?

私はさまざまなテストを行って、推定されたHeightForRowAtIndexPathが何をするのかの関係を判断しようとしました。最初は、高さの下限を提供するのではないかと考えました。したがって、150 .. 私の小さなセルでさえ、誤って 150 の高さになります。しかし、そうではありません。

私はそれがこのようなことをしているかもしれないと思います:あなたの推定されたHeightForRowAtIndexPath値が150であるとしましょう.行に150を使用している場合があります(実際には()がそのサイズ以下であることが証明されていますが、heightForRowAtIndexPathから実際のサイズになる場合もあります.

一方、推定された高さの値よりも小さい値を入れた場合 (私の例では 100 とします)、ほとんど「まったく機能しません」細胞。

非常に高いセルは正しく機能しているようです。おそらく、「heightForRowAtIndexPath からの高さが推定値の 2 倍の場合、実際の高さを使用します」のようなものです。

明確にするために、セルが小さすぎることはないようですが、セルが大きくなりすぎることがよくあります。

明確にするために、私は自動レイアウトを使用していません。これは、作成する必要があるセルのタイプです。(残念ながら、これが autolayout でどのように機能するかわかりません。) これは Xcode5/iOS7+ のみです。

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

ios - すでにロードされている表のセルの高さを変更するにはどうすればよいですか?

現在、カスタマイズされた uitableview セルに webview をロードしています。問題は、Web ビューのサイズが可変であることです。webViewDidFinishLoad では、html ドキュメントの実際のサイズに基づいて Web ビューのサイズを設定できます。私の問題は、Web ビューの読み込みが完了する前に、すでに heightForRowAtIndexPath で高さが設定されているテーブル セルです。テーブル セルがロードされた後、テーブル セルの高さを変更するにはどうすればよいですか?

理想的には、このようなコード行を使用できるようになるべきだと思います。

ただし、heightForRowAtIndexPath のセル情報にアクセスできないようです。状況をかなりうまく説明したように感じましたが、投稿すべきだと思われるコードはすべてここに掲載できます。私は多くのことを試しました (そのため、どこでもコメントや失敗した試みがあります) が、主な問題は、heightForRowAtIndexPath などの適切な場所でセル情報にアクセスできないように見えることです。webViewDidFinishLoad で何らかの方法でセル情報を設定することさえできれば、Web ビューのフレーム サイズも設定しているセルのフレームを簡単に設定できます。

以下は、テーブル セル サブクラスのセットアップです。

これは、Gavinのコードの一部を使用しようとして最後に試みたものです。しかしもちろん、cellForRowAtIndexPath が割り当て可能でないため、テーブル セルを設定する方法はありません。

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

ios - heightForRowAtIndexPath には多くのセルが含まれます

セルの行を動的に変更する必要があります。そのため、選択した行を格納するために selectedIndex 変数を使用します

次に、選択した行の高さを次のように変更します。

このコードを実行し、最初の行が選択されている場合はすべて問題ありませんが、2 番目 (mytableview で 2 行のみ) が選択されている場合は、高さが変更された次のすべての空の行も取得します。どこが間違っているの?