加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在swift中向下滑动时搜索栏

发布时间:2020-12-14 04:59:20 所属栏目:百科 来源:网络整理
导读:我正在为iOS开发一个社交媒体应用程序 我的ViewControllers目前嵌入在NavigationController中. 在我的新闻提要屏幕上,我需要在用户向下滑动时显示搜索栏(并在他向上滑动时隐藏它),其中如果用户输入内容,搜索结果将显示在新闻提要屏幕的顶部. 我试图修补这个,
我正在为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,completion: { (Bool) -> Void in
    })
}

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读