データを入力してUITableViewController
いますが、作成されたセルの一部を無効にする必要があり、その他のセルには詳細アクセサリ ボタンが残されています。私がしなければならないことは、詳細アクセサリ (選択) を持つものを無効にすることですが、この詳細ボタンをアクティブのままにして情報を取得することです。
2 に答える
mobiletest の回答を拡張して、同様のことを行いました。
アクセサリの開示インジケータ タイプでセルを作成しました
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UITableViewControllerDelegate メソッド内
- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath
各セルにカスタム ボタンを作成しました。どのセルのどのボタンが選択されているかを正確に特定するために、SOに関するこの回答が役に立ちました。
セルの selectionStyle を変更しないことを選択することもできますが、変更することをお勧めします。これにより、アプリの見栄えが良くなり、セルを選択できることを示唆するものがセルに表示されなくなり、使いやすさが向上します。ユーザーのために。
または、メソッドにチェックを入れることができます
- (void) tableView: (UITableView*) tableView didSelectRowAtIndexPath: (NSIndexPath*) indexPath
セルを選択して取得し、セルのaccessoryTypeを確認してロジックを配置できます。
UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryDisclosureIndicator)
{
//Your logic here
}
ただし、これはセル全体が選択可能になることを意味し (選択されていない場合、開示ボタンは機能しません)、この場合、開示ボタンをカスタマイズできないことを意味します。また、セル全体が選択可能であるため、ユーザーがセルをクリックしている限りロジックも実行されます。質問から判断すると、必要な機能のようには聞こえませんが、間違っている可能性があります。:)
どれがあなたに合っているか見てください。お役に立てれば!
一部の行から詳細アクセサリ ボタンを非表示にするか、詳細アクセサリ ボタンがない機能を無効にしますか。機能を無効にするには、didSelectRowAtIndexPathにコードを含めることができます。詳細アクセサリ ボタンがあるかどうかを確認します。ある場合は何もしません。