3

横画面を埋めるUIScrollviewがあります。この画面には、水平方向にスクロールできるUIViewの小さなツリーが含まれています。スクロールビューに樽型歪みを適用して、サブビューがスクロールビューの外側から中央に移動すると、形状が変化するようにします。

このような歪みを適用するために何をするのが良いですか?

スクロールビューのdrawRectをオーバーライドし、ビットマップに描画し、それを歪ませてから、代わりにScrollViewのコンテキストに描画する方法はありますか?または、この種の歪みを行うための組み込みAPIはありますか?

樽型歪み
(出典:arielnet.com

4

1 に答える 1

1

各 UIView のレイヤーを適切に変換することで、この効果に近づけることができます。CATransform3D を使用すると、各レイヤーを 3D で回転および移動したり、遠近効果を適用したりできます。あなたの場合、各 UIView レイヤーを変換して、カルーセルのように、中央のビューを前方にまっすぐ画面に向け、側面のレイヤーを傾けて画面からわずかに凹ませることができます。これにより、レイヤー自体が湾曲することはありません (長方形として描画されます) が、メイン ビューのレイヤーに変換を適用して遠近効果を作成すると、非常に近くなるはずです。

この種のレイヤーの 3-D 配置の例として、完全な 3-D 迷路が CALayers から構築されているこの例をお勧めします。

スクロール ビューに関する限り、おそらくこれにはカスタム タッチ処理を行う必要があります。scrollViewDidScroll: のような UIScrollViewDelegate メソッドに応答することでうまくいくかもしれませんが、私はこれを自分で試したことはありません。

于 2009-11-03T19:10:33.383 に答える