H5CoreScreenEdgePan.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // H5CoreScreenEdgePan.h
  3. // libPDRCore
  4. //
  5. // Created by DCloud on 15/10/27.
  6. // Copyright © 2015年 DCloud. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. NS_ASSUME_NONNULL_BEGIN
  11. @class H5CoreScreenEdgePan;
  12. @protocol H5CoreScreenEdgePanDelegate <NSObject>
  13. @required
  14. - (BOOL)screenEdgePan:(H5CoreScreenEdgePan*)edgePan
  15. shouldReceiveGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
  16. touch:(UITouch *__nullable)touch;
  17. @optional
  18. - (void)screenEdgePan:(H5CoreScreenEdgePan*)edgePan
  19. getParams:(void (^)(UIView * topView , NSArray * linkageViews, CGFloat duration))param;
  20. - (BOOL)screenEdgePan:(H5CoreScreenEdgePan*)edgePan handleScreenEdgePan:(UIScreenEdgePanGestureRecognizer*)recoginzer;
  21. - (void)screenEdgePan:(H5CoreScreenEdgePan*)edgePan recognizerEnd:(BOOL)cancel;
  22. - (void)screenEdgePan:(H5CoreScreenEdgePan*)edgePan recognizerStart:(CGFloat)progress;
  23. - (void)screenEdgePan:(H5CoreScreenEdgePan*)edgePan recognizerInProgress:(CGFloat)progress;
  24. @end
  25. typedef NS_ENUM(NSInteger, H5CoreScreenEdgePanType) {
  26. H5CoreScreenEdgePanTypeNo = 0,
  27. H5CoreScreenEdgePanTypeAppBack = 1,
  28. H5CoreScreenEdgePanTypeFreameBack,
  29. H5CoreScreenEdgePanTypeCustom
  30. };
  31. @interface H5CoreScreenEdgePan : NSObject<UIGestureRecognizerDelegate> {
  32. //UIGestureRecognizer *_gestrueRecongizer;
  33. UIView *_topView;
  34. UIImageView *_shadowImageView;
  35. //边缘滑动
  36. CGPoint _startTouch;
  37. CGPoint _lastTouch;
  38. CGFloat _topleftPosX;
  39. CGFloat _topViewSrcX;
  40. CGFloat _duration;
  41. NSMutableArray *_linkageViews;
  42. NSMutableDictionary *_presentViewsOriginLeft;
  43. BOOL _isMoving;
  44. UIView *_maskView;
  45. NSMutableDictionary *_userInfo;
  46. }
  47. @property(nonatomic, assign)UIView *gestureRecognizerView;
  48. @property(nonatomic, assign)UIGestureRecognizer *gestrueRecongizer;
  49. @property(nonatomic, assign)BOOL isRuning;
  50. @property(nonatomic, readonly)UIView *topView;
  51. @property(nonatomic, assign)H5CoreScreenEdgePanType panType;
  52. @property(nonatomic, assign, nullable)id<H5CoreScreenEdgePanDelegate> edgeDeleagete;
  53. - (void)setObject:(id)object forKey:(NSString*)aKey;
  54. - (id)objectForKey:(NSString*)aKey;
  55. - (void)removeObjectForKey:(NSString*)aKey;
  56. - (id)initWithGestureRecognizerView:(UIView*)view;
  57. - (void)resetGestureRecognizerView:(UIView*)view;
  58. - (void)removeGestureRecognizer;
  59. - (void)setEnable:(BOOL)enable;
  60. @end
  61. NS_ASSUME_NONNULL_END