2010-12-28 10 views
1

私は盲目でMacとiOSデバイスの両方でVoiceoverを使用しているため、iOS開発を開始していますがマウスを使用できません。この特定の場合、私はUIを設計する人を手に入れることができないので、自分自身でビュー上に9つのコントロールをレイアウトしたいと思っています。Interface Builderを使用せずにCocoaTouchコントロールの座標とサイズを指定する

インターフェイスビルダでは、マウスを使用して接続を作成し、コントロールをライブラリからビューにドラッグする必要があるので、自分ではできません。だから私はコードでUIを作成し、これは動作します。

しかし、私は今のコントロールをレイアウトしたい:

  • その隣のUITextFieldとUILabel
  • こと、2 UILabelsと2 UIButtonsの下。
  • さらにいくつかのコントロールがあります。私の意図は単にこれが単純なUIであることを示すことに過ぎません。

誰もがビュー上にこれらのコントロールを配置するのに役立つヒントやルールはありませんか?各コントロールは、以下に似た構文を使用して初期化されています。私は私の頭の中で数学をやってmedioca結果とX/Y /幅/高さの値の合理的なセットを取得しようと時間を費やしてきた

inputField = [[UITextField alloc] initWithFrame:CGRectMake(x, y, width, height)]; 

。これまでにやったことのある人からのヒントは、大いに感謝しています。

+0

チップをありがとう。問題は、私が最初にInterface Builderを使用することができないためです:-) – Saqib

答えて

0

最終的には、さまざまな人と話し合い、さらに研究した後、私はより良い、しかしまだ最適ではない解決策を思いついた。私が欠けていた重要な情報は、UILabelオブジェクトのSizeToFitメッセージでした。

まず、すべてのラベルを作成してテキストを設定し、SizeToFitを使用して幅/高さを自動的に計算します。ボタンの場合は、ラベルを作成し、ボタンのタイトルとしてラベルを設定します。

次に、私はプログラム的にマージン/パディングのラベルと値に基づいて、すべてのテキストフィールドのために幅を計算:

  • は私の横にテキストフィールドとラベルをしたいとします。
  • 私はラベルを作成し、SizeToFitを使用します。
  • 私は変数マージン= 10とパディング= 5(何これらはあるべき調査する)
  • し、テキストフィールドの幅がtotalWidth-2である*マージン-myLabel.frame.size.widthパディング
  • 定義xの値はまったくマージンで、テキストフィールドのx値はmargin + myLabel.frame.size.width + paddingです。
  • 今のところ私は20でテキストフィールドの高さをハードコーディングしていますがこれは洗練されます。

他の人がこの方法の改善を持っている場合、私は、このコミュニティのwiki作りました。

0

私は通常、正しい#を取得するために、ちょうどブランクのIBビューを使用してコードを取得し、コードにプラグインします。

関連する問題