2014-08-31 98 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;