0

水平方向にスクロールできるアイコンを含むドックとして機能するアプリの下部にある画像に UIScrollView があります。UIScrollView の粗いエッジの代わりに、アイコンをフェードアウトさせて、見た目をより美しくしたいと考えています。iOS 開発は初めてなので、次のいずれかが有効なオプションであるかどうかはわかりません。

  1. スクロールビューのオーバーレイとして使用する色あせた画像を作成して、アイコンが表示部分のみに表示されるようにします。
  2. 中心 (または各エッジ) からの距離に基づいて、画像のアルファを実際に変更します。

最初のアイデアが最も単純だと思いますが、他のアイデアのためにこれを捨てたいと思います。

注:このチュートリアルは見ましたが、その手法では背景が単色であることを前提としています。プログラムでそれを行う場合、おそらく個々の画像をフェードする必要があります。

4

1 に答える 1

1

#2のラインに沿って何かを確実に実装できます。チュートリアルの説明に似たものになります。ただし、アルファ トランジションは、チュートリアルで説明したグラデーション レイヤーを使用したり、画像を使用したりするほど滑らかではありません。これは、アイコン全体が同じアルファを持つためです。違いがどの程度認識できるかは、アイコンのサイズによって異なります。アイコンが小さいほど、違いを見分けることができる人はほとんどいません。アイコンが大きいほど、違いは明らかです。

を実装する必要があります

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView

スクロール ビューのデリゲート クラスのメソッド。このメソッドは、スクロール ビューがそのコンテンツの位置を変更するたびに呼び出されます。このメソッドでは、そのサブビューを呼び出して、必要に応じてアルファを調整できます。すべての要素でアルファ調整を呼び出す代わりに、少し最適化するには、まだ部分的/完全に表示されているサブビューを更新するだけです。

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

于 2012-04-24T12:25:26.377 に答える