Swift Playgroundsで学ぶiOSプログラミング 第46回
アフィン変換を使って多彩なアニメーションを実現
6つのパラメーターを使って画像を変形させてみる
2017年07月10日 17時00分更新
前回から、iOS 10以降で利用可能になった比較的新しいアニメーション機能を実現するUIViewPropertyAnimatorというクラスを扱っています。これは読んで字の如し、ビューのプロパティ(属性)を変化させることでアニメーションを実現するものでした。
前回は、アニメーションによって変化させるビューの属性として、不透明度を表すalphaや、中心位置を表すcenterを指定していました。また、アニメーションは、ボタンをタップすることで起動し、そのボタンそのもののビューとしての属性を変化させるというパターンを踏襲していました。
今回は、前回とはちょっと違ったアニメーションの属性、起動方法を試してみることにします。まず変化させる属性は、transformという名前のものです。この語の一般的な意味は「変換」ですが、iOSのビューのtransform属性は特に「アフィン変換」と呼ばれる2次元の座標変換を表します。それによって、ビューを縦横自在に拡大/縮小したり、回転、変形、移動させることもできます。
もちろん、ビューのtransform属性は、アニメーション機能とは独立したもので、単独で設定してビューの座標を変換することができます。しかし、アニメーションと組み合わせることで、変換前後の見た目の違いが明確になり、アニメーションやアフィン変換について学ぶのにも最適な材料を提供してくれます。
今回は、このアフィン変換と、前回とは異なったアニメーションの起動方法を組み合わせて探求していきましょう。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ