0

我希望能够根据内容设置我的表格视图的大小。我认为我可以在 prepareForSegue 中执行此操作,因为如果在我的 rootViewController 中按下按钮,我的 tableview 会显示为弹出框。所以我正在尝试设置显式大小,就像我可以在情节提要中做的那样,但我想以编程方式进行。我试过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

你必须设置整个frame. 如果您想origin保持不变,请执行以下操作:

self.tableview.frame = CGRectMake(self.tableview.frame.origin.x, self.tableview.frame.origin.y, __width__, __height__);
于 2012-05-10T16:19:15.820 回答
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 回答
-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 回答