- Peek & Pop Compat for Long Press on non 3D touch Device of iOS 9+
- BAPeekPop is the Objective-C library to support 3D touch similar operation on older device via long-press
To integrate BAPeekPop, in your viewcontroller, you just init BAPeekPop instance and call its register
BAPeekPop *baPeekPop = [[BAPeekPop alloc] initWithTarget:self];
[baPeekPop registerForPreviewingWithDelegate:self sourceView:self.view];
The delegate is the same as id<UIViewControllerPreviewingDelegate>
BAPeekPop has no extra methods in delegate, you only need to implement
NS_CLASS_AVAILABLE_IOS(9_0) @protocol UIViewControllerPreviewingDelegate <NSObject>
The reference example
It's similar as original implementaion, you need to offer
@property(nonatomic, readonly) NSArray<id<UIPreviewActionItem>> *previewActionItems;
in the previewing-viewcontroller
And in this array, you need to add objects of BAPreviewAction
or BAPreviewActionGroup
BAPeekPop has offer their factory methods as following
NS_CLASS_AVAILABLE_IOS(9_0) @interface BAPreviewAction : UIPreviewAction
@property(nonatomic, assign, readonly) UIPreviewActionStyle style;
+ (instancetype)actionWithTitle:(NSString *)title style:(UIPreviewActionStyle)style handler:(void (^)(UIPreviewAction *action, UIViewController *previewViewController))handler;
@end
NS_CLASS_AVAILABLE_IOS(9_0) @interface BAPreviewActionGroup : UIPreviewActionGroup
+ (instancetype)actionGroupWithTitle:(NSString *)title style:(UIPreviewActionStyle)style actions:(NSArray<BAPreviewAction *> *)actions;
@end
The reference example
To run the example project, clone the repo, and run pod install
from the Example directory first.
BAPeekPop is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "BAPeekPop"
Bram (hryeh), hanru.yeh@gmail.com
BAPeekPop is available under the MIT license. See the LICENSE file for more info.