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版は以下のような感じ。画面が小さいのでメニューを外に出したり、戻したりできるようにした。