HXPhotoEditGridView.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // HXPhotoEditGridView.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. #import "HXPhotoEditGridLayer.h"
  10. #import "HXPhotoEditGridMaskLayer.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. typedef NS_ENUM(NSUInteger, HXPhotoEditGridViewAspectRatioType) {
  13. HXPhotoEditGridViewAspectRatioType_None, // 不设置比例
  14. HXPhotoEditGridViewAspectRatioType_Original, // 原图比例
  15. HXPhotoEditGridViewAspectRatioType_1x1,
  16. HXPhotoEditGridViewAspectRatioType_3x2,
  17. HXPhotoEditGridViewAspectRatioType_4x3,
  18. HXPhotoEditGridViewAspectRatioType_5x3,
  19. HXPhotoEditGridViewAspectRatioType_15x9,
  20. HXPhotoEditGridViewAspectRatioType_16x9,
  21. HXPhotoEditGridViewAspectRatioType_16x10,
  22. HXPhotoEditGridViewAspectRatioType_Custom
  23. };
  24. @protocol HXPhotoEditGridViewDelegate;
  25. @interface HXPhotoEditGridView : UIView
  26. @property (nonatomic, assign) CGRect gridRect;
  27. @property (nonatomic, weak, readonly) HXPhotoEditGridMaskLayer *gridMaskLayer;
  28. - (void)setGridRect:(CGRect)gridRect animated:(BOOL)animated;
  29. - (void)setGridRect:(CGRect)gridRect maskLayer:(BOOL)isMaskLayer animated:(BOOL)animated;
  30. - (void)setGridRect:(CGRect)gridRect maskLayer:(BOOL)isMaskLayer animated:(BOOL)animated completion:(void (^ _Nullable)(BOOL finished))completion;
  31. /** 最小尺寸 CGSizeMake(80, 80); */
  32. @property (nonatomic, assign) CGSize controlMinSize;
  33. /** 最大尺寸 CGRectInset(self.bounds, 20, 20) */
  34. @property (nonatomic, assign) CGRect controlMaxRect;
  35. /** 原图尺寸 */
  36. @property (nonatomic, assign) CGSize controlSize;
  37. /** 显示遮罩层(触发拖动条件必须设置为YES)default is YES */
  38. @property (nonatomic, assign) BOOL showMaskLayer;
  39. /** 是否正在拖动 */
  40. @property(nonatomic,readonly,getter=isDragging) BOOL dragging;
  41. /** 比例是否水平翻转 */
  42. @property (nonatomic, assign) BOOL aspectRatioHorizontally;
  43. /** 设置固定比例 */
  44. @property (nonatomic, assign) HXPhotoEditGridViewAspectRatioType aspectRatio;
  45. /// 自定义固定比例
  46. @property (assign, nonatomic) CGSize customRatioSize;
  47. - (void)setAspectRatio:(HXPhotoEditGridViewAspectRatioType)aspectRatio animated:(BOOL)animated;
  48. - (void)setupAspectRatio:(HXPhotoEditGridViewAspectRatioType)aspectRatio;
  49. @property (nonatomic, weak) id<HXPhotoEditGridViewDelegate> delegate;
  50. /** 遮罩颜色 */
  51. @property (nonatomic, assign) CGColorRef maskColor;
  52. @property (nonatomic, weak, readonly) HXPhotoEditGridLayer *gridLayer;
  53. @property (nonatomic, assign) BOOL isRound;
  54. /** 长宽比例描述 */
  55. - (NSArray <NSString *>*)aspectRatioDescs;
  56. - (void)setAspectRatioWithoutDelegate:(HXPhotoEditGridViewAspectRatioType)aspectRatio;;
  57. - (void)changeSubviewFrame:(CGRect)frame;
  58. @end
  59. @protocol HXPhotoEditGridViewDelegate <NSObject>
  60. - (void)gridViewDidBeginResizing:(HXPhotoEditGridView *)gridView;
  61. - (void)gridViewDidResizing:(HXPhotoEditGridView *)gridView;
  62. - (void)gridViewDidEndResizing:(HXPhotoEditGridView *)gridView;
  63. /** 调整长宽比例 */
  64. - (void)gridViewDidAspectRatio:(HXPhotoEditGridView *)gridView;
  65. @end
  66. NS_ASSUME_NONNULL_END