機能の3dtouchメモの④に当たる機能を調べてみた。
iOS9.1でペンの関係でかなり変わるらしいけどとりあえずUITouchでforceで取れるということらしい。
ってことですごい簡単に筆圧感知お絵かきアプリを作って見ました。
今までお絵かきアプリって「UIBezierPath」を使ったんだけどこれだとパスを作って
最後に色、太さを決めるなんでとりあえず適当にいけそうな
Core Graphicsを使ったやつで実装してみました。
コードは
kameware/forcetouchtest
に置いてあります。
ただこのお絵かきアプリのやり方ってundo,redoの戻る進むの考え方ができないのでもっと良いやり方がアレば教えて下さい。
コードの解説としては
objc:ViewController.m
// 線太さ
float lineWidthc = 10.0;
if ([touch respondsToSelector:@selector(force)]) { // force対応判定
NSLog(@"force:%f", touch.force);
lineWidthc = lineWidthc * touch.force; // forceに合わせ太さを変更
}
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), lineWidthc);
ッて感じでデフォルトを10としてそれに足してforce(~1.0)をかけてるだけです。
簡単!でもこれじゃ戻れないからこのままではダメだ!どうすれば。。。。
■今回の参考
いい感じのgitサンプルとして
ynishi2014/PressTest
yusuga/ForceTapGestureRecognizer
が参考になりました。
ありがとうございます。
お絵かきアプリはこちら
Core Graphicsで作るiPad向けお絵描きアプリの基礎 (2/4)
を参考