2009-02-27 10 views
0

iPhoneゲームで作業していて、UIScrollViewを使用してアイコンを表示しようとしていますが、スクロールしているバーから別のビューにドラッグすることができます基本的には、それらを手からドラッグしてゲームボード上でプレイする)。問題は、UIScrollViewがそれ自身の範囲外のものをすべてクリップすることです。その中であなたは罰金ホワイトボードまでアイコンをドラッグすることができ、それが実際に動作しますが、機能的にiPhone SDK:UIScrollViewのcllippingを無効にする

alt text

...しかし、あなた:ここ

は、私が何をしようとしているの写真ですあなたがドラッグしているときにそれらを見ることはできません...それは受け入れられません。

スクロールビューが行うクリッピングを一時的に無効にすることができますか、それとも回避する方法はありますか?ハッキーかどうか、私は本当にそれが起こるようにしたいと思います。

これには他の解決策がありますか?それとも別のアプローチですか?ページビューが機能するかもしれないが、まだ試していないのであれば、スクロールビューのように解決策はないと思った。

最悪の場合私はバーをスクロール可能にしないことに戻すことができますが、これはゲームのメカニックにダンパーをかけることになります。

答えて

7

私はあなたがUIViewのclipsToBoundsプロパティを探していると思います。私はUIScrollViewのに成功し、それを使用しました:

scrollView.clipsToBounds = NO; 

しかし、あなたはゲームビューにスクロールビューからやりたい、ドラッグ、スクロールビューからアイコンビューを削除する必要があり、スーパーに置きます(スクロールビューの原点とコンテンツオフセットを使用して計算された)スクロールビュー内の可視位置に対応する位置に移動し、そのトラックにユーザの指の動きを追跡させます。タッチのリリースで、適切な位置でゲームビューにドロップするか、スクロールビューに戻します。

+0

素晴らしい、私はそれのようなプロパティを探していて、私の人生のためにそれを見つけることができませんでした。はい、それはまさに私がやっていることです(一つのビューからアイコンビューを取り除き、正しい位置にボード上に新しいアイコンを作り直す)。 –

+0

だからブラッド、これはドラッグ部分のために完全に動作します、ありがとう!私の新しい質問は、アイコンビューをクリップすることなく、バーのビュー(アイコンのドラッグ可能なビューではなく、UIScrollViewの子であるコンテナビュー)をクリップすることができます。私は両方の方法を持つことができないと思うが、試してみたい。 =) –

+0

スクロールビューのclipsToBoundsをNOに設定し、コンテナUIViewをYESに設定できますが、アイコンがコンテナ内にある場合、スクロールビューがクリッピングを行っていた場合と同じ結果になります。あなたがアイコンの上のバーだけを話しているなら、あなたは良いでしょう。 –

1

私はこの質問を理解していませんが、スクロールビューとホワイトボードのzオーダーを調べるべきだと思います。それは、ドラッグがちょうどホワイトボードの後ろにあることかもしれない。

これが失敗すると、ビューのすべての境界が階層的であることがわかります。

私はまた、プレイヤーの指の下にアニメーションを作成するために "スプライト"を作成する方がよいと考えています。プレイヤーがドラッグしているものを見ることができるように、スプライトのドローポイントをタッチ位置からオフセットできます。

+0

zオーダーに関する良い提案、私はそれを調べましたが、そうではありません。子ビューは、背後にある他のビューがない場合でも、あらゆる方向にクリップされます。スプライトのアイデアは私が簡単に考えたものですが、他の提案がうまくいかなければ、私はそれをやると思います。 –

関連する問題