0

私は基本的なことをしてきましたが、iOSは初めてで、今はクロスワードアプリの開発を試みています。どこから始めればよいかの提案。

私が最も直面している問題は、15 X 15 のチェッカー ボードを開発することです。私は2つの可能な解決策を考えました-

  1. 15 行ごとに 15 個の TextField を配置するには、要件に従ってテキスト フィールドを無効にし、黒の背景色を追加します。でも、クロスワードボックスの左上隅に数字があるので、2つの質問があります。どうすればいいですか?2 つ目は、テキスト フィールドが非常に多いため、パフォーマンスに影響することです。

  2. 私が考えた別の可能な解決策は、ボードをCGRect and CGContextAddRect指定された位置にコーディングすることです。しかし、CGRect と対話する方法に問題があります。つまり、クリックするとキーボードが表示され、ユーザーは文字を入力できます。

どこから始めればいいのかわからないので、助けてください。他の解決策も受け入れられます。

4

3 に答える 3

4

UICollectionView をお勧めします。これは UITableView に似ていますが、複数の行と列があります。各 UICollectionViewCell は、UITextField で構成する必要があります。

数字については、静的に行うこともできます。つまり、ストーリー ボードで行います (数字ごとに UITextField を配置すると、残りのスペースは UICollectionView.

または(私が好むものですが、より多くのロジックが必要です)16x16のボードを作成し、セクションの0番目のセクションとセクションの0番目ごとの行が数字に使用され、残りは実際のクロスワードに使用されます.

于 2013-10-17T05:41:33.017 に答える
1

古いバージョンをターゲットにする場合は、iOS6+ またはAQGridViewをターゲットにしている場合は、UICollectionView を使用するのが最善の方法です。すべてのセルは最終的に UIView になります。

カスタムテキストフィールドを使用すると、事態が複雑になる可能性があります。UIKeyboard を使用し、デリゲートをコレクション ビューとして設定します。didselectrowAtIndex で、キーボードを表示します。任意のキーボード デリゲートは、そのボックスでラベルに設定できる文字を返します

このテキストフィールドアプローチよりも利点はほとんどありません

1) UITextField と比較して、UIView/UILabel を簡単にカスタマイズできます。
2) ラベルには、カスタム フォントと属性付き文字列を含めることができます。
3) UITextField でカーソルを非表示にするのは難しい。編集モードを示します。

短所: ラベルのキーボード設定が必要です。(ただし、ピッカービューなどの代替コントロールで克服できます)

また、ビューに値を保存しないようにしてください。常にデータ構造 (文字の 2 次元配列) からビューを更新します。

于 2013-10-17T05:46:28.910 に答える