2012-04-30 17 views
0

私はしばらくの間クロスワードアプリケーションを開発していました。プレイヤーは、ズームすることができるはずですので、実際のゲームはUIScrollViewの中で実行さ複数のビューでUIViewを追加すると、UIScrollViewが遅れます

、パンなど

UIScrollViewのに私はUIViewのを追加しています。まず、UIViewに複数のUIImageViewsとUILabelsを追加しようとしましたが、結果的にスクロールのパフォーマンスが非常に悪くなりました。

今私は3つのサブクラス化されたUIViewを作成しようとしました。ここで、それぞれのカスタムdrawRectメソッドを作成しました。 3つのUIVIewsが必要ですが、そのうち2つだけは再描画する必要がありますが、同時には必要ありません。 3番目のものは、定数である手がかり番号を含んでいます。

マイUIScrollViewの階層は次のようになります。

UIScrollView 
    UIView 
     UIImageView (show the game board image) 
     UIView (shows the marked row/column) 
     UIView (shows the text the user writes) 
     UIView (shows the clue numbers) 

私は、問題は、私は1のUIViewでUIImageView + 3 UIViewsを持っているということだと思います。私はこの階層を作るしようとするなど、それが遅れていませんが、私は、パンをズームすることはできないんだけど、スクロール:

UIScrollView 
    UIImageView (show the game board image) 
    UIView (shows the marked row/column) 
    UIView (shows the text the user writes) 
    UIView (shows the clue numbers) 

あなたは正しい方向に私を導くんてみてくださいすることができます。 3つのUIVIewsのコードがかなり長いので、あまり変更する必要がなければ感謝します。事前に

感謝:)

EDIT

スクリーンショット:http://crosswords-plus.com/puzzles/screen.png

答えて

0

まず第一に、私はあなたのUIScrollViewの縮小とそれから手がかりを含むUIViewのを引っ張ってお勧めします。パン/ズームする必要がないように思えるので、UIScrollViewの内部にオーバーヘッドを追加するだけです。

第2に、実装を見ることなく答えを与えるのは難しいですが、UIImageView/UIView/UIViewの階層を1つのサブクラスにして、空の黒い四角必要に応じて行/列の番号付けを行います。そうすれば、あなたはUIScrollViewに1つのUIViewしかなく、これはおそらくもっと簡単です。

これは役に立ちますか?バックグラウンドにUIImageViewを使用している理由はありますか?ユーザーが入力したテキストから行/列番号を分離する理由はありますか?

+0

答えてくれてありがとう:彼らは正しいタイルに留まる必要があるので、私は手がかり番号でビューを引き出すことはできません。 私はdrawRectのゲームボードを描画することがパフォーマンスにも影響することを知ったので、私はゲームボードとしてUIImageを使用します。 選択した行を別の色でマークする必要があるため、複数の「レイヤー」が必要です(私の質問の編集を参照)。 行/列の番号とユーザーの入力を区別する理由は、UIViewを更新/再描画する必要があるため、ユーザーは彼が書いた内容を見ることができるからです。 私はこの問題を解決するために、さらに私を助けてくれることを願っています:) –

関連する問題