有没有办法知道uitableview上的索引何时被实际使用?我在Apple文档中找不到任何方法,但我想知道是否有其他人知道任何事情。我基本上想在我的表视图中制作一个动画,该动画根据索引中选择的部分而变化,我不知道如何在不访问表视图索引的情况下执行此操作。
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
这不是一个非常优雅的解决方案,但您可以在第一次出现时将{UIDableView'继承为- (void)didAddSubview:(UIView *)subview;
中的子类。这假设它直接添加到UITableView而不是其子视图或superview,并且您可以将添加的视图识别为索引。也可能在第一次添加后,它将被隐藏并显示,而不是被删除并再次添加。
答案 1 :(得分:0)
UITableViewDataSource
委托方法-tableView:sectionForSectionIndexTitle:atIndex:
返回NSInteger
,表示从部分索引中选择的部分。在您的数据源委托(可能是您的表视图控制器)的任何类中重写此方法。
在视图控制器中设置一个名为NSInteger
的{{1}}。其值在上述委托方法中设定。
最后,在视图控制器中设置一个观察者,等待对此属性的更改,并在观察到更改时触发所需的代码。
在selectedSectionIndex
方法中,例如:
-viewWillAppear:
在[self addObserver:self forKeyPath:@"selectedSectionIndex" options:NSKeyValueObservingOptionNew context:nil];
方法中,取消注册观察者:
-viewWillDisappear:
这样做很重要,这样[self removeObserver:self forKeyPath:@"selectedSectionIndex"];
方法不会抛出异常。
最后,设置观察者方法,以便在-dealloc
发生更改时执行某些操作:
selectedSectionIndex
Key-Value Observing模式是一种很好的通用方法,可以在某个对象的值发生变化时触发某些内容。 Apple写了一篇很好的"quick-start" document来介绍这个话题。