UNICORN - iOS
MEditImageView.h
1 //
2 // MEditImageView.h
3 //
4 // Created by takanori.morita on 2012/11/27.
5 //
6 
7 #import <UIKit/UIKit.h>
8 #import <QuartzCore/QuartzCore.h>
9 
10 // 塗りつぶし背景色
11 #define EDITED_IMAGE_BACKGROUND_FILL_COLOR 0.94f,0.95f,0.93f,1.0f
12 
13 @protocol MEditImageViewDelegate;
14 
15 @interface MEditImageView : UIView <UIGestureRecognizerDelegate>
16 {
17  id<MEditImageViewDelegate> delegate;
18 
19  // イメージ
20  UIImage *image;
21 
22  // イメージビュー
23  UIImageView *imageView;
24 
25  // 編集ラストのimage
26  UIImage *lastEdittingImage;
27 
28  // イメージサイズ
29  CGSize imageSize;
30  CGSize editImageSize;
31 
32  // 切り取りイメージのサイズ
33  CGFloat rectangleTrimWidth;
34  CGFloat rectangleTrimHeight;
35 
36  // 切り取りイメージの表示上のサイズ
37  CGFloat rectangleFittingWidth;
38  CGFloat rectangleFittingHeight;
39 
40  // 編集パラメタ
41  CGFloat imageTurn;
42  CGFloat imageMoveX;
43  CGFloat imageMoveY;
44  CGFloat imageScale;
45 
46  // 編集カレントパラメタ
47  CGFloat imageTurnOffset;
48  CGFloat imageMoveOffsetX;
49  CGFloat imageMoveOffsetY;
50  CGFloat imageScaleOffset;
51 
52  // 編集アフィン変換用変数
53  CGAffineTransform rotate;
54  CGAffineTransform scale;
55  CGAffineTransform translate;
56  CGAffineTransform concat;
57 
58  // 編集中フラグ
59  BOOL moveFlg;
60 
61  // ジェスチャー中フラグ
62  BOOL pinchFlg;
63  BOOL rotateFlg;
64  BOOL panFlg;
65 
66  // 編集可能フラグ
67  BOOL editable;
68 
69  BOOL selfclose;
70  void (^completionBlock)(MEditImageView *editedImageView);
71 
72  // デフォルト画像設定フラグ
73  BOOL defaultImage;
74 
75  // 拡大最大値
76  CGFloat scaleMax;
77 
78  // 回転フィッティングレンジ
79  CGFloat turnFitRange;
80 
81  // 切り取りイメージのサイズと切り取りイメージの表示上のサイズの倍率
82  CGFloat rectangleTrimAndFittingScale;
83 }
84 
85 @property (nonatomic, retain) UIImageView *imageView;
86 @property CGAffineTransform rotate, scale, translate, concat;
87 @property CGFloat imageTurn, imageMoveX, imageMoveY, imageScale;
88 @property (nonatomic, strong) id<MEditImageViewDelegate> delegate;
89 @property (strong, nonatomic) UIImage *image;
90 @property (strong, nonatomic) UIImage *lastEdittingImage;
91 @property (nonatomic) CGSize editImageSize;
92 @property (nonatomic) BOOL editable;
93 @property (nonatomic) BOOL selfclose;
94 @property (strong, nonatomic) void (^completionBlock)(MEditImageView *editedImageView);
95 @property (nonatomic) BOOL defaultImage;
96 @property (nonatomic) CGFloat scaleMax;
97 @property (nonatomic) CGFloat turnFitRange;
98 @property (nonatomic) CGFloat rectangleTrimAndFittingScale;
99 
100 // Methods
101 // Setter Methods
102 - (void)setImage:(UIImage *)_image;
103 - (void)setImage:(UIImage *)_image :(BOOL)atFit;
104 - (void)setEditable:(BOOL)_editting;
105 - (void)setDefaultImage:(BOOL)_defaultImage;
106 - (void)setTurnFitRange:(CGFloat)_turnFitRange;
107 - (void)setScaleMax:(CGFloat)_scaleMax;
108 - (void)setRectangleTrimAndFittingScale:(CGFloat)_rectangleTrimAndFittingScale;
109 
110 // Other Methods
111 - (void)fitImage;
112 - (UIImage*)getEditedImage;
113 
114 // Gestures
115 - (void)handleTapGesture:(UITapGestureRecognizer *)sender;
116 - (void)handleLongPressGesture:(UILongPressGestureRecognizer *)sender;
117 - (void)handleRotationGesture:(UIRotationGestureRecognizer *)sender;
118 - (void)handlePanGesture:(UIPanGestureRecognizer *)sender;
119 - (void)handlePinchGesture:(UIPinchGestureRecognizer *)sender;
120 - (void)pinchEnd;
121 - (void)panEnd;
122 - (void)rotateEnd;
123 - (void)turnFitting;
124 - (void)endTurnFittAnimation;
125 - (void)rectFitting;
126 
127 @end
128 
129 //delegate実装
130 @protocol MEditImageViewDelegate <NSObject>
131 @optional
132 - (void)editImageViewShowCamera:(MEditImageView *)editImageView;
133 - (void)editImageViewGestureBegan;
134 - (void)editImageViewGestureEnded;
135 @end
Definition: MEditImageView.h:131
Definition: MEditImageView.h:15