2012-02-23 8 views
2

気象ステーションの名前を付けてUILabelのコードを書いた。後で、UITableViewにグリッドビューを設定するコードを追加しました。http://www.recursiveawesome.com/blog/2011/04/06/creating-a-grid-view-in-ios/UITableViewをコードでUILabelの下に配置する方法

問題は、テーブルビューがすべての画面に表示され、ラベルが見えないということです。

この順序で要素を配置するにはどうすればよいですか?

  1. UILabel
  2. UITableView

ありがとう!ペン先で

+1

それを配置した後言いましたか? InterfaceBuilderを使用しましたか?コードでやっていますか?あなたのビューコントローラはUIViewControllerまたはUITableViewControllerのインスタンスですか?また、テーブルビューを下にスクロールするときにラベルをスクロールしたいのですか、それともいつも上に上がっているはずですか? – dbrajkovic

+0

本当にテーブルの上に直接ラベルを描きたいですか?言い換えれば、ラベルに部分的にテーブルを隠すようにしますか?あるいは、実際にテーブルの上にラベルを描きたいのですか?言い換えれば、そのラベルが画面よりも画面の上側に表示されるようにしますか? – Till

答えて

7

1:

あなたが希望としてそれらが配置されているように、あなたは、単にサイズ/あなたのラベルとテーブルビューをレイアウトすることができ、ペン先を使用している場合。 UITableViewは、任意のサイズにすることができ、画面の任意の部分を占有することができます。

ペン先がなければ

あなたのラベルやテーブルを初期化/ /アロケーションを作成し、ビューに追加します:

[self.view addSubview:myTableView]; 
[self.view addSubview:myLabel]; 

これに魔法のステップは、あなたがフレームを設定する必要があることですあなたのラベルとテーブルの両方のビューの。厥本当にカスタムので、私はより多くの指示なしにそのお手伝いを傾けるしかし、それはこのようなものに見えるかもしれ何か:計算フレームは多くの方法を行うことができますので、予めご了承ください

// the number 10 is used for padding purposes 
CGSize labelWidth = CGSizeMake(self.view.frame.size.width-20, 1000.0f); 
CGSize textSize = [myLable.text sizeWithFont:myLable.font constrainedToSize:labelWidth lineBreakMode:UILineBreakModeWordWrap]; 
myLable.frame = CGRectMake(10, 10, labelWidth.width, textSize.height); 


myTableView.frame = CGRectMake(0, myLable.frame.origin.y+10, self.view.frame.size.width, self.view.frame.size.height - (myLable.frame.origin.y+10)); 

を。また、回転のために手動でフレームを再計算する必要があります。

願わくばこれは幸運に役立ちます!

+0

ペン先の有無にかかわらず、彼が自分のビューを作成するためにUITableViewControllerを使用した場合、これは機能しません。 UITableViewControllerのviewプロパティは、UITableViewのインスタンスです。 – dbrajkovic

+2

それはうまくいった!どうもありがとう。 –

+0

優秀!どういたしまして。 – RachelC

3

コメントの質問に対する回答に応じて、いくつかの回答があります。

  1. ラベルは、常にテーブルビューがスクロールされているかどうか、トップになりたい場合は、あなたがのUIViewControllerのインスタンスを使用していることを確認し、その後、あなたの2つの図を作成します。フレームを適切に設定し、ラベルビューとテーブルビューをサブビューとしてメインビューに追加します。
  2. ラベルをスクロールしたい場合は、さらに簡単です。あなたのUIViewControllerは、UITableViewControllerのサブクラスとして残ることができます。 UITableViewにはtableHeaderViewというプロパティがあります。 myTableView.tableHeaderView = labelView;レイチェルを好きに
1

あなたは可能性が

[self.view addSubview:myTableView]; 
[self.view addSubview:myLabel]; 

またはどのようのUITableViewを作成している

[self.view bringSubviewToFront:myTableView] 
+0

「bringtosuperview」これはどのクラスですか? – dbrajkovic

+0

私の間違い申し訳ありません。私はすでにそれを編集する – Edig

関連する問題