UIScrollView
で使用したいいくつかのメソッドとプロパティをサブクラス化して追加しましたUITableView
。テーブル ビューを UIScrollView の代わりにカスタム scrollView から継承させることは可能ですか?
2 に答える
Objective-C の強力な機能の 1 つはカテゴリです。
Objective-Cからの抜粋: カテゴリ:
サブクラス化の代わりに、Objective-C カテゴリはメソッドをクラスに追加する手段を提供します。興味深いのは、カテゴリを通じて追加したメソッドは、いわばクラス定義の一部になるということです。つまり、NSString クラスにメソッドを追加すると、NSString のすべてのインスタンスまたはサブクラスがそのメソッドにアクセスできるようになります。
延長できるはずですUIScrollView
。拡張 (またはそれぞれのカテゴリ) の範囲内で、拡張はすべてのサブクラスにも適用する必要があります。しかし、私はそれを自分で試したことはありません。
UIScrollView
サブクラス化して (名前付きとしましょう)、代わりにサブクラス MyScrollViewMyScrollView
の既存のサブクラスを作成することはできません。しかし、拡張は機能するはずです。UITableView
UIScrollView
UIScrollView
ただし、拡張機能でメソッド abc を提供し、abcも実装MySuperView
してUITableView
いる場合、UITableView の abc が呼び出されます。したがって、UITableView を直接拡張またはサブクラス化する場合と比較して、この構築の利点は実際にはわかりません。