首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义UIBackButtonItem和UINavigationController手势

自定义UIBackButtonItem和UINavigationController手势
EN

Stack Overflow用户
提问于 2014-04-14 17:08:11
回答 2查看 199关注 0票数 1

我需要一个带有自定义UIBarButtonItemUIBarButtonItem

我知道如何(使用自定义视图),但有一个问题:

使用默认的后退按钮项目给我们的iOS 7手势,所以我们可以滑动回去等,使用自定义UIBarButtonItem项目不给我们这些手势。

如何创建自定义UIBarButtonItem并维护iOS 7手势?

我不想从一开始就建立一个完整的滑动手势,我不相信这是唯一的方法。

EN

回答 2

Stack Overflow用户

发布于 2014-04-14 17:26:14

手势基本上可以使用addGesture:(UIGestureRecognizer *)手势方法添加到任何UIGestureRecognizer中。

基本上,您需要实例化一个UISwipeGestureRecognizer对象,设置您想要的任何属性,并实现它的委托。然后,只需将其添加到希望识别UISwipeGestureRecognizer的视图中即可。

因此,例如,由于UINavigationBar继承自UIView,您可以向其发送addGesture:(UIGestureRecognizer *)手势消息,如下所示:

代码语言:javascript
复制
UINavigationBar *myNavigationBar = [UINavigationBar new];
[self.view addView:myNavigationBar]; // 'self' refers to your view controller assuming this is where your code lives
UISwipeGestureRecognizer *swipeGesture = [UISwipeGestureRecognizer new]; // use the designated initializer method instead
[myNavigationBar addGesture:swipeGesture]; // again, this method is inherited from UIView, it's how you add gestures to views
[myNavigationBar setUserInteractionEnabled:YES]; // this is very important for enabling gestures

这就对了。

请记住,这是一半的工作,因为你想要实现动画,使它看起来像你在滑动一个页面,它移动时,你正在滑动。

票数 1
EN

Stack Overflow用户

发布于 2014-05-22 10:58:33

您可以使用一个小技巧,使本机手势工作。创建UINavigationItem的子类,然后重写leftBarButtonItems方法:

代码语言:javascript
复制
- (NSArray*)leftBarButtonItems
{
    return nil;
}

现在,将这个类用于具有自定义离开UIBarButtonItem的项。这个手势奏效了!这是因为UINavigationController认为没有剩下的项,并启用了手势。您仍然可以通过leftBarButtonItem属性访问自定义项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23066088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档