HXPhotoEditingView.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. //
  2. // HXPhotoEditingView.h
  3. // photoEditDemo
  4. //
  5. // Created by Silence on 2020/6/29.
  6. // Copyright © 2020 Silence. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @class HXPhotoEditingView, HXPhotoClippingView, HXPhotoEditConfiguration;
  11. @protocol HXPhotoEditingViewDelegate <NSObject>
  12. /// 开始编辑目标
  13. - (void)editingViewWillBeginEditing:(HXPhotoEditingView *)EditingView;
  14. /// 停止编辑目标
  15. - (void)editingViewDidEndEditing:(HXPhotoEditingView *)EditingView;
  16. @optional
  17. /// 即将进入剪切界面
  18. - (void)editingViewWillAppearClip:(HXPhotoEditingView *)EditingView;
  19. /// 进入剪切界面
  20. - (void)editingViewDidAppearClip:(HXPhotoEditingView *)EditingView;
  21. /// 即将离开剪切界面
  22. - (void)editingViewWillDisappearClip:(HXPhotoEditingView *)EditingView;
  23. /// 离开剪切界面
  24. - (void)editingViewDidDisappearClip:(HXPhotoEditingView *)EditingView;
  25. - (void)editingViewViewDidEndZooming:(HXPhotoEditingView *)editingView;
  26. @end
  27. @interface HXPhotoEditingView : UIScrollView
  28. - (instancetype)initWithFrame:(CGRect)frame config:(HXPhotoEditConfiguration *)config;
  29. @property (nonatomic, weak, readonly) HXPhotoClippingView *clippingView;
  30. @property (nonatomic, weak, readonly) UIView *clipZoomView;
  31. @property (nonatomic, strong) UIImage *image;
  32. @property (nonatomic, weak) id<HXPhotoEditingViewDelegate> clippingDelegate;
  33. @property (strong, nonatomic) HXPhotoEditConfiguration *configuration;
  34. /** 最小尺寸 CGSizeMake(80, 80) */
  35. @property (nonatomic, assign) CGSize clippingMinSize;
  36. /** 最大尺寸 CGRectInset(self.bounds , 20, 20) */
  37. @property (nonatomic, assign) CGRect clippingMaxRect;
  38. /// 启用绘画功能
  39. @property (nonatomic, assign) BOOL drawEnable;
  40. /// 启用模糊功能
  41. @property (nonatomic, assign) BOOL splashEnable;
  42. /// 启用贴图
  43. @property (nonatomic, readonly) BOOL stickerEnable;
  44. @property (assign, nonatomic) CGFloat drawLineWidth;
  45. /// 开启编辑模式
  46. @property (nonatomic, assign, getter=isClipping) BOOL clipping;
  47. - (void)setClipping:(BOOL)clipping animated:(BOOL)animated;
  48. - (void)setClipping:(BOOL)clipping animated:(BOOL)animated completion:(void (^ _Nullable)(void))completion;
  49. /// 取消裁剪
  50. /// @param animated 是否需要动画
  51. - (void)cancelClipping:(BOOL)animated;
  52. /// 还原
  53. - (void)reset;
  54. - (BOOL)canReset;
  55. /// 旋转
  56. - (void)rotate;
  57. /// 镜像翻转
  58. - (void)mirrorFlip;
  59. /// 默认长宽比例
  60. @property (nonatomic, assign) NSUInteger defaultAspectRatioIndex;
  61. /// 固定长宽比例
  62. @property (nonatomic, assign) BOOL fixedAspectRatio;
  63. /// 自定义固定比例
  64. @property (assign, nonatomic) CGSize customRatioSize;
  65. /// 只要裁剪
  66. @property (assign, nonatomic) BOOL onlyCliping;
  67. /// 长宽比例
  68. - (NSArray <NSString *>*)aspectRatioDescs;
  69. - (void)setAspectRatioIndex:(NSUInteger)aspectRatioIndex;- (void)setAspectRatioIndex:(NSUInteger)aspectRatioIndex animated:(BOOL)animated;
  70. - (NSUInteger)aspectRatioIndex;
  71. - (void)resetToRridRectWithAspectRatioIndex:(NSInteger)aspectRatioIndex;
  72. - (void)photoEditEnable:(BOOL)enable;
  73. /// 创建编辑图片
  74. - (void)createEditImage:(void (^)(UIImage *editImage))complete;
  75. @property (nonatomic, strong, nullable) NSDictionary *photoEditData;
  76. - (void)resetRotateAngle;
  77. - (void)changeSubviewFrame;
  78. - (void)clearCoverage;
  79. @end
  80. NS_ASSUME_NONNULL_END