大佬教程收集整理的这篇文章主要介绍了可爱触摸 – 如何添加一个UIGestureRecognizer到UIBarButtonItem像在常见的撤消/重做UIPopoverController方案在iPad应用程序?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的iPad应用程序,我不能附加popover到按钮栏项目,只有按住并保持事件。但是这似乎是undo / redo的标准。其他应用程序如何做到这一点?
背景
我在我的UIKit(iPad)应用程序的工具栏中有一个撤消按钮(UIBarButtonSystemItemUndo)。当我按下撤消按钮,它会触发它的动作是undo :,并且正确执行。
然而,在iPad上撤消/重做的“标准UE约定”是按下撤消执行撤消,但按下并按住按钮显示弹出控制器,其中用户选择“撤消”或“重做”,直到控制器被解除。
附加popover控制器的正常方式是使用presentPopoverFromBarButtonItem :,我可以很容易配置这个。为了让这只显示在按住后,我们必须设置一个视图来响应“长按”手势事件,如下面的代码段:
UILongPressGestureRecognizer *longPressOnUndoGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@SELEctor(handleLongPressOnUndoGesture:)]; //Broken because there is no customView in a UIBarButtonSystemItemUndo item [self.undoButtonItem.customView addGestureRecognizer:longPressOnUndoGesture]; [longPressOnUndoGesture release];
@R_674_9881@,按下并保持在视图上的方法handleLongPressOnUndoGesture:将被调用,在这个方法中,我将配置和显示popover为撤消/重做。到现在为止还挺好。
这个问题是没有视图可以附加到。 self.undoButtonItem是一个UIButtonBarItem,而不是一个视图。
可能的解决方案
1)[理想]将手势识别器附加到按钮栏项目。可以在视图中附加手势识别器,但是UIButtonBarItem不是视图。它有一个属性.customView,但该属性是nil当buttonbaritem是一个标准的系统类型(在这种情况下是)。
2)使用另一个视图。我可以使用UIToolbar,但这将需要一些奇怪的命中测试和一个全面的黑客,如果甚至可能在第一位。没有其他替代视图使用,我可以想到。
3)使用customView属性。标准类型像UIBarButtonSystemItemUndo没有customView(它是nil)。设置customView将会删除它需要的标准内容。这将等于重新实现UIBarButtonSystemItemUndo的所有外观和功能,如果甚至可能做的话。
题
如何将手势识别器附加到此“按钮”?更具体地说,如何在iPad应用程序中实现标准的按住并显示重做弹出框?
想法?非常感谢,特别是如果有人实际上在他们的应用程序工作(我在想你,omni),并想分享…
以上是大佬教程为你收集整理的可爱触摸 – 如何添加一个UIGestureRecognizer到UIBarButtonItem像在常见的撤消/重做UIPopoverController方案在iPad应用程序?全部内容,希望文章能够帮你解决可爱触摸 – 如何添加一个UIGestureRecognizer到UIBarButtonItem像在常见的撤消/重做UIPopoverController方案在iPad应用程序?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。