我正在使用故事板。我试图在视图控制器中动态更改UItableView的框架。我在视图控制器中的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设置为nil,最初是这样的:
- (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 :(得分:0)
使用表头视图使其正常工作。我需要使我的搜索栏很强大,以便在设置为nil时视图不会被释放。
@property (strong, nonatomic) IBOutlet UISearchBar *searchBar;
然后显示并隐藏它只是将标题设置为nil以隐藏或指定searchBar以显示它
//hide the search bar
self.tableView.tableHeaderView = nil;
//show the search bar
self.tableView.tableHeaderView = self.searchBar;