1. ホーム
  2. iphone

[解決済み] UITableViewCellからUITableViewを取得するには?

2022-12-23 10:37:51

質問

私は UITableViewCell があり、これはオブジェクトにリンクされていて、セルが表示されているかどうかを判断する必要があります。私が行った調査によると、これはつまり、何らかの方法で UITableView にアクセスする必要があるということです(そこから、それが表示されているかどうかを確認する方法がいくつかあります)。そこで、私は UITableViewCell へのポインタを持っています。 UITableView へのポインタを取得する他の方法があれば教えてください。

どのように解決するのですか?

iOSのバージョンチェックを避けるため、UITableViewが見つかるまで、セルのビューからスーパービューを反復して歩みます。

Objective-C

id view = [cellInstance superview];

while (view && [view isKindOfClass:[UITableView class]] == NO) {
    view = [view superview]; 
}

UITableView *tableView = (UITableView *)view;

スウィフト

var view = cellInstance.superview
while (view != nil && (view as? UITableView) == nil) {
  view = view?.superview
}
        
if let tableView = view as? UITableView {
   tableView.beginUpdates()
   tableView.endUpdates()
}