dnjiro’s 9VAe blog

誰でもアニメが作れる無料ソフト9VAeきゅうべえ開発者のブログ

9VAeきゅうべえiPad版 QVAeViewを組み込む方法まとめ。iPhone版もできた。

iPad版がだいぶできてきたが、iPhoneで動かないので、iPhone用プロジェクトに、9VAeを組み込んで見ることにする。その方法を順番に書いていく。

 

この作業は、3回目だ。前にやった作業はこちら。

9VAeきゅうべえiPad版 CoreTextを使った文字表示ができた - dnjiro’s 9VAe blog

 

QvaeLibの内容

QvaeLibは、完成したらGithubなどで無料公開するつもり。つまり、誰でも iPhone/iPad版9VAeアプリが作れるようになるわけだ。そのときZIPファイルを解凍すると、QvaeLibフォルダの中に次のファイルが入っている。

 data

libqvaeLib.a

QvaeDef.h

QvaeLib.h

QvaeLib.mm

QvaeView.h

QvaeView.m

 これをプロジェクトに追加する。dataフォルダにはサンプルアニメなどが入っている。QvaeViewが、9VAeのエディタ画面になる。

 

フレームワークの設定

9VAeLibには以下のフレームワークが必要。プロジェクトを選択し中央ペインの下で「+」を押して追加する。

AssetsLibrary

AVfoundation

QuartzCore

CoreText

UIKit

Foundation

CoreGraphics

 

もし、Frameworkの関数でリンクエラーが出たら、プロジェクト設定の中の Frameworkのサーチパスに値が設定されていないか調べると良い。Frameworkのサーチパスがプロジェクト内になっていたら削除する。

 

Privacyの設定

プロジェクト.plistを選択し、右ボタンで行を追加し、次のプライバシー設定を追加する。

Privacy - Photo Library Usage Description

Privacy - Media Library Usage Description

設定するキーは、ユーザーに許可を求める時の、使い道の表示に使われる。

 

QvaeViewを StoryBoardに入れる

1。右下のペインを「○」ボタンを押してオブジェクトを表示させ、その中から「View」をドラッグして目的の場所に置く。以下を参考

カスタムViewをxibではなく、storyboardでデザインする - Qiita

2。右上のペインの 「Identity」をクリックし、Classの「UIView」と書かれている部分を、「QvaeView」に変更

下の Accessibility は、「image」「User Interface Enabled」にチェック

Document のラベル名を、「qvaeView」にする

3。右上の「Connections」をクリック。Referencong Outlets の右側の「○」をドラッグし、左側の View Controller までドラッグする。これは以下の、ViewController.m の初期化の時に、画面サイズを与えるためのリンク。

 

ViewController.mにQvaeViewを入れる

 1。メインのViewController.h の適当な場所に以下の行を追加する

#import "QvaeView.h"

 

@property (nonatomic, weak) IBOutlet QvaeView *qvaeView;

@property (nonatomic, retain) NSTimer *qvaeTimer; 

2。ViewController.m の適当な場所に以下の行を追加する

@synthesize qvaeView;

@synthesize qvaeTimer;

 

-(void) update:(NSTimer *)timer

{

    [QvaeView updateView:self qvaeView:qvaeView];

}

 - (void)viewDidLoad の中に以下の初期化とタイマーを追加する

- (void)viewDidLoad {

    [super viewDidLoad];

    if(!qvaeView){

        qvaeView = [[QvaeView alloc] init];

    }

    

    

    [qvaeView  setQvaeFrame:self.qvaeView.frame]; //画面サイズを与えて初期化

    if(qvaeTimer==nil){ //タイマー処理

        qvaeTimer = [NSTimer

                     scheduledTimerWithTimeInterval:0.2 //タイマー間隔(秒)

                     target:self         //実行する処理の所属(self=自分)

                     selector:@selector(update:) //実行する処理名

                     userInfo:nil        //ユーザーパラメータ

                     repeats:YES         //繰り返すかどうか

                     ];

    }

}

 

 

 

以上の作業で9VAe画面が描画されるようになる。

iPhone版は以下のような感じ。画面が小さいのでメニューを外に出したり、戻したりできるようにした。

 

f:id:dnjiro:20171027105351p:plain