У меня есть табличный вид с переключателем в каждой ячейке. Я хочу скрыть переключатели в режиме редактирования. Я сделал со следующим кодомне может получить доступ к невидимым ячейкам в uitableview
-(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;
}
}
}
}
Он отлично работает для всех видимых ячеек. Но я не могу получить доступ к любым невидимым ячейкам с помощью этого кода. cell возвращает nil. Таким образом, переключатели в невидимой ячейке не скрываются. Как я могу решить эту проблему. помогите мне
Еще одна вещь, анимация не работает здесь. Но это второстепенная проблема.
причинно- вы не можете их открыть, потому что они не созданы еще –
Вам нужно разместить код cellForRowAtIndexPath() для достижения вашего требования. –