0

これを別の方法で行う人を見てきましたが、UITableView(たとえば画面Aで)アイテムを選択すると、そのアイテムが強調表示(選択)され、別の画面Bがナビゲーションスタックにプッシュされてから、戻ったときに表示されます。画面Bから画面Aまで、以前に選択したアイテムはアニメーションで選択解除されるため、次のように入力します。

[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];

中身:

- (void)viewWillAppear:(BOOL)animated;

これはAppleのサンプルコードが行うことです。しかし、私は多くの人々がそれが選択された直後に、その行の選択を解除するのを見てきました:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

個人的な好みかもしれませんが、これについての公式な説明はありますか?選択を解除すると、viewWillAppear:ユーザーは以前に選択したアイテムを知ることができます。これはボーナスですが、一部のカスタムセルでは、選択した背景/ビューが単色ではなく、選択した状態を表すUIViewがセルに追加されている場合があります。 、これにより、一部のセルがアニメーションで選択解除され、一部のセルがアニメーションなしで選択された直後に選択解除されると、アプリに一貫性がなくなります。

誰かが何か考えを持っていますか?

4

1 に答える 1

0

これはあなた次第です。アプリケーションのUIを大幅にカスタマイズしている場合は、このハイライトをまったく使用したくない場合があります。複雑なセルがあり、セル選択トリガーを使用して詳細ビューなどにドリルダウンする代わりに、セルのUIButton内部にある場合があります。

UIKitはセルを強調表示し、詳細ビューコントローラーをポップするまでその強調表示を保持したいと考えているようです。この時点で、おそらくviewWillAppear:現在選択されているセルのUITableView選択が解除されます。これにより、非常に微妙で簡単な表示が可能になります。どこから来たのかをアクセスするために選択されたセル。

そのように言ってもあまり面白くはありませんが、アプリを終了して数時間後に戻った場合を想像してみてください。これは小さく、非常に微妙なアニメーションであると便利です。

過去に行ったアプリケーションでは、これをあまり使用しないか、選択してすぐに選択を解除する傾向がありました。そのため、リストに戻ったり「戻ったり」したときに、選択解除のアニメーションが表示されません。しかし、それは私が言及しているアプリケーションのすべてのセルが非常に高度にカスタマイズされていることを意味します。

于 2012-08-13T01:44:05.520 に答える