gpt4 book ai didi

swift - 快速向下滑动时的搜索栏

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:31 24 4
gpt4 key购买 nike

我正在为 iOS 开发社交媒体应用

我的 ViewControllers 当前嵌入在 NavigationController 中。在我的新闻提要屏幕上,我需要在用户向下滑动时显示一个搜索栏(并在他向上滑动时隐藏它),如果用户在其中输入内容,搜索结果将显示在新闻提要屏幕的顶部。

我曾尝试修改这个,但我是 iOS 的新手,到目前为止还没有成功。

如有任何帮助,我们将不胜感激,请记住,我只进行了几周的 iOS 编程,因此深入了解会有所帮助。谢谢!

最佳答案

首先,您需要实现UISwipeGestureRecognizer

viewDidAppear中包含setup()函数

func setup() {
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(down))
swipeDown.direction = .down
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(up))
swipeUp.direction = .up

self.view.addGestureRecognizer(swipeDown)
self.view.addGestureRecognizer(swipeUp)

searchBar = UISearchBar(frame: CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: 40.0))
if let searchBar = searchBar
{
searchBar.backgroundColor = UIColor.red
self.view.addSubview(searchBar)
}
}

然后你的两个函数上下

func down(sender: UIGestureRecognizer) {
print("down")
//show bar
UIView.animate(withDuration: 1.0, animations: { () -> Void in
self.searchBar!.frame = CGRect(x: 0.0, y: 64.0, width: self.view.frame.width, height: 40.0)
}, completion: { (Bool) -> Void in
})
}

func up(sender: UIGestureRecognizer) {
print("up")
UIView.animate(withDuration: 1.0, animations: { () -> Void in
self.searchBar!.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.width, height: 40.0)
}, completion: { (Bool) -> Void in
})
}

您可以添加 Bool isShowing 来避免不必要的动画。然后,实现搜索栏委托(delegate) textDidChange 以在用户键入时更改搜索结果。

func searchBar(_ searchBar: UISearchBar,textDidChange searchText: String)`

现在您需要做的就是在 UISearchController 中显示您的结果。

注意使用向上/向下滑动 Action 可能会干扰 UIScreachController

的滚动

关于swift - 快速向下滑动时的搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26671911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com