改变self.view框架不起作用

时间:2012-11-05 15:18:26

标签: objective-c ios

我有以下结构:

UIViewController> UIView(self.view)> UITableView(self.tableView - IBOutlet)

我试图把整个东西移动59像素,我试过了:

- (void)viewWillAppear:(BOOL)animated {

    self.view.frame = CGRectMake(0, -59, 320, 367 + 59);
    // or
    self.tableViewMe.frame = CGRectMake(0, -59, 320, 367 + 59);;

    NSLog(@"%f", self.view.frame.origin.x);
    NSLog(@"%f", self.view.frame.origin.y);
    NSLog(@"%f", self.view.frame.size.width);
    NSLog(@"%f", self.view.frame.size.height);

    NSLog(@"%f", self.tableView.frame.origin.x);
    NSLog(@"%f", self.tableView.frame.origin.y);
    NSLog(@"%f", self.tableView.frame.size.width);
    NSLog(@"%f", self.tableView.frame.size.height);

    [super viewWillAppear:animated];

}

坐标是正确的,但视图和表格是相同的,根本不移动。此外,如果我将以下代码添加到IBAction,如按钮点击,那么它可以工作:

self.view.frame = CGRectMake(0, -59, 320, 367 + 59);

1 个答案:

答案 0 :(得分:3)

尝试将其粘贴在viewDidAppear而不是viewWillAppear。