有没有办法知道uitableview上的索引何时被实际使用?

时间:2010-05-04 04:59:17

标签: iphone uitableview indexed

有没有办法知道uitableview上的索引何时被实际使用?我在Apple文档中找不到任何方法,但我想知道是否有其他人知道任何事情。我基本上想在我的表视图中制作一个动画,该动画根据索引中选择的部分而变化,我不知道如何在不访问表视图索引的情况下执行此操作。

非常感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

这不是一个非常优雅的解决方案,但您可以在第一次出现时将{UIDableView'继承为- (void)didAddSubview:(UIView *)subview;中的子类。这假设它直接添加到UITableView而不是其子视图或superview,并且您可以将添加的视图识别为索引。也可能在第一次添加后,它将被隐藏并显示,而不是被删除并再次添加。

答案 1 :(得分:0)

  1. UITableViewDataSource委托方法-tableView:sectionForSectionIndexTitle:atIndex:返回NSInteger,表示从部分索引中选择的部分。在您的数据源委托(可能是您的表视图控制器)的任何类中重写此方法。

  2. 在视图控制器中设置一个名为NSInteger的{​​{1}}。其值在上述委托方法中设定。

  3. 最后,在视图控制器中设置一个观察者,等待对此属性的更改,并在观察到更改时触发所需的代码。

  4. 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来介绍这个话题。