各セルにスイッチがあるテーブルビューがあります。編集モードでスイッチを非表示にしたい。私は次のコードでやりました
-(void)displaySwitch:(BOOL)status {
int count = [self.tblView numberOfRowsInSection:0];
int i;
for (i = 0; i<count; i++) {
UITableViewCell *eachCell = [self.tblView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
//NSLog(@"%@",eachCell);
NSArray *subViews = [eachCell.contentView subviews];
for (UISwitch *eachObject in subViews) {
if ([eachObject isKindOfClass:[UISwitch class]]) {
CATransition *animation = [CATransition animation];
animation.type = kCATransitionFade;
animation.subtype = kCATransitionFromLeft;
animation.duration = 1.4;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[eachObject.layer addAnimation:animation forKey:kCATransition];
eachObject.hidden = status;
}
}
}
}
表示されているすべてのセルで正常に機能します。しかし、このコードでは非表示のセルにアクセスできません。セルはnilを返します。したがって、非表示セルのスイッチは非表示になりません。どうすればこの問題を克服できますか。私を助けてください
もう1つ、アニメーションがここで機能していません。しかし、それは二次的な問題です。