2014-08-31 42 views
0

我正在使用故事板。我試圖動態地改變視圖控制器內的UItableView的框架。我在視圖控制器中的tableView上方有一個搜索欄。搜索欄只能在一定條件下可見,所以大多數時候我想隱藏它更改tableView的框架以顯示和隱藏搜索欄

當視圖加載時,我隱藏搜索欄,然後設置我的tableView的框架,以便它向上移動以填充缺失的空間。但它看起來不像我的表視圖框架正在更新。

- (void)viewDidLoad { 

    [super viewDidLoad]; 
//hide the search bar until the user selects search 
    self.searchBar.hidden = YES; 
    self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y - self.searchBar.frame.size.height, self.tableView.frame.size.width, self.tableView.frame.size.height + self.searchBar.frame.size.height); 

} 

是否有另一種方法或我需要調用,以便我的tableView的框架得到更新?感謝

編輯:香港專業教育學院也嘗試添加搜索欄爲表在我的故事板頭視圖,然後設置headerView以零開始,像這樣:

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    self.tableView.delegate = self; 
    self.tableView.dataSource = self; 
    self.searchBar.delegate = self; 


    //hide the search bar until the user selects search 
    self.tableView.tableHeaderView = nil; 


} 

但是當我嘗試使它使用

self.tableView.tableHeaderView = self.searchBar; 

它沒有出現。

回答

0

讓它使用表頭視圖工作。我需要強化搜索欄,以便視圖在設置爲零時不會被釋放。

@property (strong, nonatomic) IBOutlet UISearchBar *searchBar; 

然後顯示和隱藏它只是設置頁眉到零隱藏或分配給它的搜索欄來顯示它

//hide the search bar 
self.tableView.tableHeaderView = nil; 

//show the search bar 
self.tableView.tableHeaderView = self.searchBar;