2013-01-25 47 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)]; 
     }]; 

    } 
} 
相關問題