2011-01-24 4 views
3

を変更した後に消える:テーブルビューには、次のコードビューのサイズ

self.dataTableViewController = [[DataTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
CGRect tableViewRect = self.dataTableViewController.view.frame; 
tableViewRect.origin.x = 0.0f; 
tableViewRect.origin.y = 91.0f; 
//tableViewRect.size.width = 320.0f; 
//tableViewRect.size.height = 613.0f; 
self.dataTableViewController.view.frame = tableViewRect; 
[self.view addSubview:self.dataTableViewController.view]; 

私tableviewcontrollerが現れ、すべてが、働いても右の位置に配置されています。 テーブルのサイズが正しくありません。 sizeプロパティの2行のコードのコメントを外すと、私のuiviewからtableviewが消えてしまい、どうしてその理由が分かりません。

いくつかのアイデア?

//編集:

大丈夫奇妙な動作があります。 私のviewcontrollerはsplittableviewcontroller(左側)にあります。

self.contentSizeForViewInPopover = CGSizeMake(320.0, 704.0);私のpopovercontrollerには何の影響もありません。私はsplittableviewcontrollerテンプレートからデフォルトを残しました。私はポートレートモードになっている場合、常にそのフル高さ。

ない幅のコメントを外す、tableViewRect.size.height = 613.0f;作品のコメントを外します。私の身長を613pxに設定すると、テーブルビューが313px高くなります。何!?私の身長を913.0fに設定すると、風景と肖像画に最適です。私が理解していないのは、景色が最高613pxに過ぎないということです。私は私のポップオーバーの高さを景色のviewcontrollerと同じ高さに設定したいので、私のtableviewは常に613です。そこに何が起こっているのか分かりません。

913pxと私のテーブルビュー:

landscape

portrait

+0

、あなたのソースコードへのダウンロードリンクを投稿することができますか?可能であれば、それはもっとうまくいくはずです。 –

+0

申し訳ありませんが、私はできません。プロジェクトはワイプで、私はすでに多くの追加の作業をしています。このシンプルな構造のサンプルはありません – choise

答えて

1

あなたは別のビューのサブビューとしてテーブルビューを挿入しようとしています。次に、フレームを指定しようとします。 フレームが指定されていても、テーブルは別のビューのサブビューであり、最初に設定した任意の自動サイズ設定の対象になります。フレームを明示的に設定することはテーブルの自動サイズ変更マスクと競合していないことを確認しましたか? は特に、あなたが値

UIViewAutoresizingNone
マスクテーブルの自動サイズ変更のために設定することで試すことができます(viewDidLoadメソッドでこれを行うをお勧めします)。

0

それは私の作品...は、テーブルビューコントローラの内部、あるいはいくつかの他のクラスでは、あなたのコードですか?私はこれを試してみました(そしてそれが動作します):

CGRect tableViewRect = self.tableView.frame; 

tableViewRect.origin.x = 0.0f; 
tableViewRect.origin.y = 91.0f; 
tableViewRect.size.width = 320.0f; 
tableViewRect.size.height = 613.0f; 

self.tableView.frame = tableViewRect; 

[self.tableView setNeedsLayout]; 
[self.tableView setNeedsDisplay]; 

はところで、私はiPhoneの寸法は320×480だと思うので、あなたが613を使用している理由は、私はよく分かりません。

+0

ipadのためのそれ。このコードはviewcontroller(self)内にあります。 'DataTableViewController'はtableviewcontrollerです。なぜ 'setNeedsLayout'と' setNeedsDisplay'を呼びますか? – choise

+0

何かのサイズを変更するか、またはUIViewアニメーションを行うたびに、レイアウトと表示を更新する必要があるためです。それじゃない?コードがiPad用のものであれば、それも機能するはずです。それは今働いていますか? –

+0

は今、これをチェックすることはできません私は – choise

関連する問題