2012-04-23 11 views
0

私は、アプリケーションの一番下の画像にUIScrollViewを配置しています。これは、水平方向にスクロールできるアイコン付きのドックとして機能します。 UIScrollViewの荒いエッジの代わりに、アイコンをフェードアウトしてより美しい外観にしたいと思います。UIScrollViewの端に近づくにつれてUIImageViewをフェードします。

  1. アイコンにのみ表示部分を介して表示されるようscrollview上のオーバーレイとして使用するために色あせた画像を作成します。これらのいずれかが有効なオプションであるかどうiOSの開発に新たなので、私は知りません。
  2. 実際には、中心からの距離に基づいて(または各エッジに から)画像の アルファを変更します。

最初のアイデアが最もシンプルであると思われますが、私はこれを他のアイデアのためにそこに投げたいと思います。

注:私はthisチュートリアルを見ましたが、そのテクニックは背景が単色であると仮定しています。私がプログラムでそれをやろうとすれば、私はおそらく個々のイメージを退色させる必要があります。

答えて

1

#2の行に沿って何かを実装することは間違いありません。チュートリアルの内容と似たようなものです。しかし、アルファトランジションは、チュートリアルで言及したグラデーションレイヤーを使用するほど滑らかではなく、アイコン全体が同じアルファを持つので画像を使用することはありません。どのくらいの違いが目に見えるかは、アイコンのサイズによって異なります。アイコンが小さくても、ほとんど違いがわかりません。アイコンが大きくなると、その違いははっきりします。あなたのスクロールビューのデリゲートクラスで(UIScrollViewの*)scrollView

方法:

あなたは

  • (ボイド)を実装するscrollViewDidScrollを持っていると思います。このメソッドは、スクロールビューがコンテンツの場所を変更するたびに呼び出されます。このメソッドでは、サブビューを呼び出して、必要に応じてアルファを調整することができます。すべての要素に対してアルファ調整を呼び出すのではなく、少しだけ最適化するには、まだ部分的にまたは完全に表示されているサブビューを更新することができます。

    EDIT:調整するビューを特定するには、上記のメソッドでパラメータとして渡されるscrollViewのcontentOffsetプロパティを使用します。

+0

私はあなたの説明と似たようなものになってしまったので、その点を教えてください。私は、私が投稿したチュートリアルから同じCAGradientLayerを使い、ポイントを回転させ、スクロールビューの境界を設定し、すべてのアイコンを保持しているスクロールビュー内のコンテナにマスクを適用しました。これで完璧に動作しました。個々のアイコンのアルファ値に触れる必要はありませんでした。 –

関連する問題