問題タブ [uitableview]

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 投票する
4 に答える
51719 参照

iphone - 個別のデリゲート/データソースを使用する場合のUITableViewの問題

概要:

何が機能するかから始めるために、UITableViewInterfaceBuilderを使用してXcodeで生成されたビューに配置されたを持っています。ビューのファイル所有者は、Xcodeで生成されたのサブクラスに設定されUIViewControllerます。このサブクラスに、との実用的な実装numberOfSectionsInTableView: tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:テーブルビューdataSourceを追加delegateし、InterfaceBuilderのファイル所有者を介してこのクラスに接続しています。

上記の構成は問題なく機能します。dataSourceこの問題は、このテーブルビューと実装を別のクラスに移動したい場合に発生します。delegateおそらく、テーブルビュー以外にビューに他のコントロールがあり、テーブルビュー関連のコードをそのクラスに移動したいためです。独自のクラス。これを達成するために、私は次のことを試みます:

  • UITableViewControllerXcodeでの新しいサブクラスを作成します
  • の既知の適切な実装をnumberOfSectionsInTableView:新しいサブクラスにtableView:numberOfRowsInSection:移動しますtableView:cellForRowAtIndexPath:
  • をInterfaceBuilderの既存のXIBUITableViewControllerの最上位に ドラッグし、このために自動的に作成された/を削除してから、のクラスを新しいサブクラスに一致するように設定しますUIViewUITableViewUITableViewControllerUITableViewController
  • UITableView以前に機能していたの既存のdataSource接続を削除し、delegateそれらを新しい接続に接続しますUITableViewController

完了したとき、私は動作していませんUITableView。私は、一見ランダムに発生する可能性のある3つの結果のうちの1つになります。

  • ロードすると、それを認識しないオブジェクトUITableViewに送信していることを示すランタイムエラーが発生しますtableView:cellForRowAtIndexPath:
  • ロードされると、プロジェクトはUITableViewエラーなしでデバッガーに侵入します
  • エラーはありませんが、表示されUITableViewません

デバッグを行い、この問題を再現するためだけに基本的なプロジェクトを作成したところ、通常、上記の3番目のオプションが表示されます(エラーはありませんが、テーブルビューは表示されません)。NSLog呼び出しをいくつか追加したところ、numberOfSectionsInTableView:numberOfRowsInSection:は両方とも呼び出されていますが、そうでcellForRowAtIndexPath:はないことがわかりました。私は本当に単純なものが欠けていると確信しており、私よりも経験豊富な人にとって答えが明白になることを望んでいました。これが簡単な答えではない場合は、コードまたはサンプルプロジェクトで更新していただければ幸いです。御時間ありがとうございます!

再現するための完全な手順:

  • Xcodeで新しいiPhoneOS、ビューベースのアプリケーションを作成し、それを呼び出しますTableTest
  • TableTestViewController.xibInterface Builderで開き、提供されたビューサーフェスにをドラッグしますUITableView
  • UITableView'sdataSourcedelegate-outletsをファイルの所有者に接続します。ファイルの所有者はすでに-classを表しているはずですTableTestViewController。変更を保存します
  • Xcodeに戻り、次のコードをに追加しますTableTestViewController.m:

  • Build and Goを実行すると、単語HelloUITableView

  • このUITableViewロジックを別のクラスに移動するために、最初にXcodeで新しいファイルを作成し、UITableViewControllerサブクラスを選択してクラスを呼び出します。TableTestTableViewController

  • 上記のコードスニペットをから削除してTableTestViewController.mに配置しTableTestTableViewController.m、これら3つのメソッドのデフォルトの実装を私たちのものに置き換えます。
  • 同じファイル内のInterfaceBuilderに戻り、をメインIBウィンドウにTableTestViewController.xibドラッグして、自動的に付属していた新しいオブジェクトを削除します。UITableViewControllerUITableView
  • この新規のクラスをに設定UITableViewControllerしますTableTestTableViewController
  • 以前に機能していた既存のバインディングからdataSourceとバインディングを削除し、同じ2つのバインディングを作成した新しいバインディングに再接続します。delegateUITableViewTableTestTableViewController
  • 変更を保存し、ビルドして実行します。取得した結果が得られた場合は、UITableView正しく機能しなくなったことに注意してください。

解決策:iPhone開発者フォーラム からのトラブルシューティングと支援を受けて、解決策を文書化しました!プロジェクトのメインサブクラスには、インスタンスUIViewControllerを指すアウトレットが必要です。UITableViewControllerこれを実現するには、プライマリビューのヘッダー(TableTestViewController.h)に以下を追加するだけです。

次に、Interface Builderで、ファイルの所有者からの新しいアウトレットをTableTestTableViewControllerメインIBウィンドウに接続します。XIBのUI部分を変更する必要はありません。ユーザーコードが直接使用していなくても、このコンセントを設置するだけで、問題は完全に解決されます。助けてくれた人々に感謝し、解決策を見つけるためにiPhone開発者フォーラムのBaldEagleにクレジットを送ります。

0 投票する
59 に答える
219631 参照

ios - -didSelectRowAtIndexPath: 呼び出されていません

タブ ビュー内にテーブル ビューを持つ iOS アプリを作成しています。私のUITableViewControllerでは を実装-tableView:didSelectRowAtIndexPath:しましたが、実行時に行を選択すると、メソッドが呼び出されません。ただし、テーブル ビューには値が設定されているため、コントローラー内の他の tableView メソッドが呼び出されていることがわかります。

これを実現するために私が何を台無しにしたのか、誰か考えがありますか?

0 投票する
9 に答える
27148 参照

iphone - UITableViewCellSelectionStyle プロパティをカスタム カラーに設定するにはどうすればよいですか?

私は iPhone アプリケーションを開発しています。テーブル ビューで、セルの選択スタイルにカスタム カラーが必要でした。UITableViewCell クラス リファレンスを読みましたが、選択スタイルに定義されている定数は 3 つしかありません (青、グレー、なし)。リファレンスで定義されている色とは異なる色を使用するアプリケーションを 1 つ見ました。

リファレンスで定義されている以外の色をどのように使用できますか?

前もって感謝します。

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

iphone - UITableViewCell の適切なサイズを決定するより良い方法はありますか?

コンテンツに応じて可変サイズになる UITableView セルがあります (数行のテキストになる可能性があります)。

セルをレイアウトする前にheightForRowAtIndexPath が呼び出されているように見えるので、テキスト文字列で [NSString sizeWithFont] を呼び出して正しい高さを推測します。セル内にテキストをレイアウトし、正確なサイズを把握した後に高さを設定するより良い方法はありますか?

0 投票する
17 に答える
193305 参照

ios - UITableViewCellの背景色をカスタマイズするにはどうすればよいですか?

UITableView内のすべてのUITableViewCellの背景(および場合によっては境界線も)をカスタマイズしたいと思います。これまでのところ、このようなものをカスタマイズすることはできなかったので、デフォルトの白い背景セルがたくさんあります。

iPhone SDKでこれを行う方法はありますか?

0 投票する
6 に答える
60470 参照

iphone - UITableView の境界線を削除するにはどうすればよいですか?

UITableView コントロールをサブクラス化し、スタイルをグループ化しましたが、セル セパレータは必要ありません。テーブル ビューのセパレーター スタイルを none に設定しようとしましたが、うまくいきません。誰でも私を助けることができますか?

0 投票する
9 に答える
11575 参照

iphone - UITableView ヘッダーの UIButton はほとんどのタッチを無視します

テーブル ビューの tableHeaderView のサブビューとして追加するボタンがあります。ボタンは問題なく表示され、タップアンドホールドは断続的に機能しますが、ほとんどの場合、反応しません. テーブル自体のサブビューとして追加しようとしました。効果はほぼ同じです。スクロールビューのタッチインターセプトに問題があるのではないかと思いましたが、テーブルのスクロールを無効にしても効果はありません。

私は何か間違ったことをしていますか?他の誰かがこれに遭遇しましたか?

編集 - 明確にするために、グループ化されたスタイルのテーブルのセクション ヘッダーではなく、メイン テーブル ヘッダーについて話しています。基本的には「お問い合わせ」画面をモデルに考えています。

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

iphone - UITableViewのスクロール位置をリセットするには?

UITableView のスクロール位置を完全にリセットして、開くたびに一番上の項目が表示されるようにしたいと思います。つまり、テーブルビューを開くたびに一番上までスクロールしたいのです。

次のコードを使用してみましたが、ドキュメントを誤解しているようです。

これはここで間違ったアプローチですか?

0 投票する
12 に答える
58033 参照

iphone - 複数選択を許可するように UITableView を構成することは可能ですか?

iPhone の場合、複数選択できるように UITableView を構成することはできますか?

私は-setSelected:animated:各 UITableViewCell のオーバーライドを試みましたが、別のセルの選択のために UITableView が選択を解除したと考えるものから実際の選択解除を分離するのが難しいため、必要な動作をごまかすのは難しいです!

誰かが助けてくれることを願っています!

ありがとう、

ニック。

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

iphone - 編集モードを終了する

UITableView を設定するオブジェクトの配列があります。ユーザーが配列から最後のオブジェクトを削除すると、新しい「デフォルト」オブジェクトが自動的に作成されます。ただし、TableView では、ユーザーがそこに到達したとき、リストはまだ「編集」モードになっています。プログラムで TableView を「通常」モードに戻す方法はありますか?