我需要一个带有自定义UIBarButtonItem的UIBarButtonItem。
我知道如何(使用自定义视图),但有一个问题:
使用默认的后退按钮项目给我们的iOS 7手势,所以我们可以滑动回去等,使用自定义UIBarButtonItem项目不给我们这些手势。
如何创建自定义UIBarButtonItem并维护iOS 7手势?
我不想从一开始就建立一个完整的滑动手势,我不相信这是唯一的方法。
发布于 2014-04-14 17:26:14
手势基本上可以使用addGesture:(UIGestureRecognizer *)手势方法添加到任何UIGestureRecognizer中。
基本上,您需要实例化一个UISwipeGestureRecognizer对象,设置您想要的任何属性,并实现它的委托。然后,只需将其添加到希望识别UISwipeGestureRecognizer的视图中即可。
因此,例如,由于UINavigationBar继承自UIView,您可以向其发送addGesture:(UIGestureRecognizer *)手势消息,如下所示:
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这就对了。
请记住,这是一半的工作,因为你想要实现动画,使它看起来像你在滑动一个页面,它移动时,你正在滑动。
发布于 2014-05-22 10:58:33
您可以使用一个小技巧,使本机手势工作。创建UINavigationItem的子类,然后重写leftBarButtonItems方法:
- (NSArray*)leftBarButtonItems
{
return nil;
}现在,将这个类用于具有自定义离开UIBarButtonItem的项。这个手势奏效了!这是因为UINavigationController认为没有剩下的项,并启用了手势。您仍然可以通过leftBarButtonItem属性访问自定义项。
https://stackoverflow.com/questions/23066088
复制相似问题