0

内容に応じてテーブルビューのサイズを設定できるようにしたい。rootViewControllerでボタンが押された場合、テーブルビューがポップオーバーとして表示されるため、prepareForSegueでこれを実行できると思います。だから私がしようとしているのは、ストーリーボードでできるように明示的なサイズを設定することですが、プログラムでそれを行いたいです。私は self.tableview.frame.size を試しましたが、エラーが発生しました。これは割り当て可能ではありませんか?

if([[segue identifier] isEqualToString:@"tagView1"])
{
    TagTableViewController *tvc = [segue destinationViewController];
    tvc.tableView.frame = CGRectMake(tvc.tableView.frame.origin.x, tvc.tableView.frame.origin.y , 100, 100);
}
4

4 に答える 4

2

TVC のviewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.clearsSelectionOnViewWillAppear = NO;
    // Change to what you need
    self.contentSizeForViewInPopover = CGSizeMake(150.0, 250.0);
}
于 2012-05-10T16:53:52.290 に答える
0

TVC の vieDidAppear: でテーブルのサイズを設定してみてください。

お気に入り:

-(void)viewDidAppear:(BOOL)アニメーション {

[super viewDidAppear:animated];

[self.tableView setFrame:CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.frame.size.height - 50)];

}

于 2014-02-07T10:44:47.470 に答える
0

全体を設定する必要がありますframeorigin同じままでいたい場合は、次のようにします。

self.tableview.frame = CGRectMake(self.tableview.frame.origin.x, self.tableview.frame.origin.y, __width__, __height__);
于 2012-05-10T16:19:15.820 に答える
-1

試すself.tableview.frame = (CGRect){self.tableview.frame.origin, newSize};

これはと同じですがself.tableview.frame = CGRectMake(self.tableview.frame.origin.x, self.tableview.frame.origin.y, newSize.width, newSize.height);、少し短くなります。

この場合、ビューのフレームを監視している他のオブジェクトには通知されないため、サイズを直接設定することは想定されていません。

于 2012-05-10T16:16:15.853 に答える