2013-01-25 46 views
1

我想通过按下iPad应用程序上的按钮来调整包含在UIViewController中的UITableView的大小。目标是在后台看到其他UITableView。该按钮在类中设置一个标志,并调用一个函数根据标志调整表的大小。UITableView的setFrame每次都不起作用

我必须单击按钮上的三次才能启动表格的大小调整。调整大小在两个工作一次。

有人可以帮我吗?

这是我的代码:

- (void)displayTableView:(BOOL)animated 
{ 
    CGFloat filterWidth = self.tableViewFilter.frame.size.width; 
    CGFloat viewWidth = self.view.frame.size.width; 

    CGFloat originx = self.showFilters == YES ? filterWidth : 0; 
    CGFloat originy = 0; 
    CGFloat width = self.showFilters == YES ? viewWidth - filterWidth : viewWidth; 
    CGFloat height = self.view.frame.size.height; 

    if (animated == YES) { 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.5]; 
    } 

    [self.tableView setFrame:CGRectMake(originx, originy, width, height)]; 

    if (animated == YES) { 
     [UIView commitAnimations]; 
    } 
} 

谢谢您的帮助

回答

0

尝试UIView的动画这样.....

- (void)displayTableView:(BOOL)animated 
{ 
    CGFloat filterWidth = self.tableViewFilter.frame.size.width; 
    CGFloat viewWidth = self.view.frame.size.width; 

    CGFloat originx = self.showFilters == YES ? filterWidth : 0; 
    CGFloat originy = 0; 
    CGFloat width = self.showFilters == YES ? viewWidth - filterWidth : viewWidth; 
    CGFloat height = self.view.frame.size.height; 

    if (animated == YES) 
    { 
     [UIView animateWithDuration:0.5 animations:^{ 
       [self.tableView setFrame:CGRectMake(originx, originy, width, height)]; 
     }]; 

    } 
} 
相关问题