[OSA2013] ACEDrawingView – メモ用途にペイント機能はいかが?

Filed under オープンソースライブラリ
Tagged as , , ,

OSS Sampler Advent Calendar 2013
「OSS Sampler AdventCalender 2013」 24日目は、「ACEDrawingView」です。
OSS Sampler 1.6には3つのペイント系オープンソースライブラリを収録していて、それぞれ特徴があり用途によって使い分けるのが良いと思いますが、アドベントカレンダーではACEDrawingViewを紹介したいと思います。

ACEDrawingView

acerbetti/ACEDrawingView – github
OSS Sampler - ACEDrawingView
Apache License 2.0ライセンスです。

Undoまである

Undoスタック機能があり、Redoも出来るのは便利ですね。
ペイントアプリとか使う人は知らず知らずに当たり前と思っている機能で、でも実装するのは意外に大変だったりするので助かります。
このデモのUIViewControllerのヘッダーを見てみると大体の構造と、このライブラリの使いやすさが見えてくると思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@property (nonatomic, unsafe_unretained) IBOutlet ACEDrawingView *drawingView;
@property (nonatomic, unsafe_unretained) IBOutlet UISlider *lineWidthSlider;
@property (nonatomic, unsafe_unretained) IBOutlet UISlider *lineAlphaSlider;
@property (nonatomic, unsafe_unretained) IBOutlet UIImageView *previewImageView;
 
@property (nonatomic, unsafe_unretained) IBOutlet UIBarButtonItem *undoButton;
@property (nonatomic, unsafe_unretained) IBOutlet UIBarButtonItem *redoButton;
@property (nonatomic, unsafe_unretained) IBOutlet UIBarButtonItem *colorButton;
@property (nonatomic, unsafe_unretained) IBOutlet UIBarButtonItem *toolButton;
@property (nonatomic, unsafe_unretained) IBOutlet UIBarButtonItem *alphaButton;
 
// actions
- (IBAction)undo:(id)sender;
- (IBAction)redo:(id)sender;
- (IBAction)clear:(id)sender;
- (IBAction)takeScreenshot:(id)sender;
 
// settings
- (IBAction)colorChange:(id)sender;
- (IBAction)toolChange:(id)sender;
- (IBAction)toggleWidthSlider:(id)sender;
- (IBAction)widthChange:(UISlider *)sender;
- (IBAction)toggleAlphaSlider:(id)sender;
- (IBAction)alphaChange:(UISlider *)sender;

現在の描画状態も drawingView.image で取得できるので保存も簡単ですね。

さぁ、何つくろう?!

前回紹介した「KZColorPicker」と組み合わせるとかなり高機能なペイント機能を実装できるということも想像できるのではないでしょうか。

badge_AppStore – OSS Sampler – iOSオープンソースライブラリ集
(今回紹介したACEDrawingViewの動作も確認できます)


One Comment

  1. […] 12月24日:ACEDrawingView – メモ用途にペイント機能はいかが? […]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)