【问题标题】:UITableView:reloadSectionIndexTitles animated correct wayUITableView:reloadSectionIndexTitles 动画正确方法
【发布时间】:2015-11-29 14:59:20
【问题描述】:

我试图在滚动时隐藏UITableView 的索引栏。

因此,当我开始滚动和完成时,我会重新加载部分索引标题。返回一个空数组隐藏栏。

我的代码是

var showSectionIndexTitles = true
override func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    showSectionIndexTitles = false
    UIView.animateWithDuration(0.5, animations: { () -> Void in
        self.tableView.reloadSectionIndexTitles()
    })
}

override func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
    showSectionIndexTitles = true
    UIView.animateWithDuration(0.5, animations: { () -> Void in
        self.tableView.reloadSectionIndexTitles()
    })
}

override func sectionIndexTitlesForTableView(tableView: UITableView) -> [AnyObject]! {
    if showSectionIndexTitles {
        return uniq([UITableViewIndexSearch] + AlphabetUppercase + datamanager.categoryIndexTitles)
    } else {
        return nil
    }
}

这在不使用动画时有效,但我想使用动画。 我更喜欢一个动画,其中当栏隐藏时整个栏向右移动,当栏可见时从右侧移动

我尝试使用UIView:animateWithDuration 来测试动画是否可行。

我注意到的:

  • 此基本动画从左上角移动/缩放 可见
  • 隐藏栏时它会立即消失

我的问题:

  • 实现索引栏可见性动画的最佳方法是什么?
  • 实现我前面提到的特定动画的最佳方法是什么?

提前谢谢你!

编辑 1:

我只记得之前在哪里看到过这个效果:iOS 8.4 Music App

当你滚动到你只能看到标题列表时,Apple 也会这样做(UITableView)

编辑 2:

我向苹果提交了一份错误报告,建议使用animated 参数更改索引栏可见性的功能。我会在收到回复后立即通知您。

尽管@matt 已经在他的answer 中提出了一个可能的解决方案,但如果其他人知道解决此问题的不同便捷方法或过去也遇到过此类功能,我很高兴收到您的来信!

【问题讨论】:

    标签: ios objective-c swift cocoa-touch core-animation


    【解决方案1】:

    您尝试执行的操作不受支持。因此,没有“最好”或“正确”的方式——无论你做什么都是非法的。我要做的是对索引栏进行快照,像您已经在做的那样隐藏真实的索引栏(即合法地和正常地),并为快照设置动画。

    【讨论】:

    • 请阅读我的回答。 :) 您的示例非常好,我喜欢通过上下滚动来玩动画,但它没有任何改变。 Apple 可以做某事的事实并不意味着有一个公共 API 可以做这件事。事实上,就你所知,他们可能完全按照我的建议去做。如果您物理上抓住索引栏并开始移动它,您可能会遇到麻烦:因此我建议您替换一个您可以完全控制的快照。
    • 我阅读了您的答案,我可能会以这种方式实现它,谢谢。我只是想让你知道我找到了一个例子
    • 我喜欢这个例子!如果您认为 Apple 应该在这里公开他们正在做的事情以便您可以轻松地做到这一点,请提交错误报告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2022-01-15
    • 2019-04-14
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多