我是iOS开发的新手。现在,当我向下滚动并且向上滚动时,我想隐藏我的标签栏。我希望以与导航栏相同的方式对此进行动画处理。对于导航栏,我只需单击“属性”检查器中的选项。我看到了工具栏的一些示例,但是我不能采用它作为标签栏。
self.tabBarController?.tabBar.hidden = true
只是隐藏了我的标签栏,但它没有像导航控制器那样具有动画效果。
这是我在生产应用程序中实际使用的代码。
它在 Swift中 ,还更新了UITabBar.hidden
var。
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0{
changeTabBar(hidden: true, animated: true)
}
else{
changeTabBar(hidden: false, animated: true)
}
}
您还可以使用其他回调方法:
func scrollViewDidScroll(scrollView: UIScrollView) {
...
}
但是,如果您选择这样做,则必须处理对实际上隐藏tabBar的helper方法的多次调用。
然后,您需要添加此方法来对tabBar的隐藏/显示进行动画处理。
func changeTabBar(hidden:Bool, animated: Bool){
var tabBar = self.tabBarController?.tabBar
if tabBar!.hidden == hidden{ return }
let frame = tabBar?.frame
let offset = (hidden ? (frame?.size.height)! : -(frame?.size.height)!)
let duration:NSTimeInterval = (animated ? 0.5 : 0.0)
tabBar?.hidden = false
if frame != nil
{
UIView.animateWithDuration(duration,
animations: {tabBar!.frame = CGRectOffset(frame!, 0, offset)},
completion: {
println($0)
if $0 {tabBar?.hidden = hidden}
})
}
}
更新Swift 4
func changeTabBar(hidden:Bool, animated: Bool){
guard let tabBar = self.tabBarController?.tabBar else { return; }
if tabBar.isHidden == hidden{ return }
let frame = tabBar.frame
let offset = hidden ? frame.size.height : -frame.size.height
let duration:TimeInterval = (animated ? 0.5 : 0.0)
tabBar.isHidden = false
UIView.animate(withDuration: duration, animations: {
tabBar.frame = frame.offsetBy(dx: 0, dy: offset)
}, completion: { (true) in
tabBar.isHidden = hidden
})
}
有没有办法隐藏滚动条,仍然可以使用鼠标或方向键向上滚动? 有人能帮忙吗?
我试图使用添加到JScrollPane中的不可编辑的JTextArea。我希望当用户点击那个特定的行时,一行被突出显示。我可以使用以下代码实现这一部分: 我想添加的是,一旦一行被高亮显示,用户使用键盘上/下键向上/向下滚动,我希望当前行被高亮显示。通过添加KeyListener可以做到这一点吗?我被如何在滚动时高亮显示数据所困扰。 文本区域包含如下数据: (即在两个特定的数据行之间可能有新的行)
我目前有一个UISearchBar(下面的代码),它工作得很好,但是我正在努力使它在我的UITableView中滚动时,我的UISearchBar不会消失。我读到的内容之一是使用以下代码行将searchController嵌入到视图控制器中:
问题内容: 我正在学习如何使用TableViews,并且想知道如何查看tableView是向上滚动还是向下滚动?我一直在尝试诸如此类的各种操作,但由于下面是针对滚动视图的操作,并且没有TableView,因此它没有用。任何建议都会很棒,因为我是新来的… 这就是我的tableView代码中的内容 问题答案: 就像@maddy在您的问题评论中说的那样,您可以使用和来检查是否正在滚动,此外,您可以同时使
我必须在向上滚动时隐藏底部导航视图,在向下滚动时显示。如何实现这个?我的布局是这样的 我附上了视图截图。请检查一下。
仍然像这样显示和隐藏视图: 但如果我必须使用向上滑动和向下滑动动画来显示和隐藏,该怎么办