fum*_*007 6 objective-c uitableview uisearchbar ios autolayout
我在使用自动布局设置的表格视图顶部有一个搜索栏,如下所示:
_searchBar.translatesAutoresizingMaskIntoConstraints = NO;
_tableView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_searchBar]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_searchBar][_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar, _tableView)]];
Run Code Online (Sandbox Code Playgroud)
我跑的时候一切都很好看.但是当我_searchBar.showsScopeBar = YES;开始编辑搜索栏之前,搜索栏和表格视图不会自动调整大小.即使我这样做[_searchBar sizeToFit],表视图也不会调整大小并向下移动.为什么??
注意:我没有把搜索栏作为表格视图的标题; 它只是一个父视图和两个子视图.注2:我检查intrinsicContentSize的_searchBar之前和之后我打电话_searchBar.showsScopeBar = YES;和大小确实发生变化.
你必须invalidateIntrinsicContentSize:
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
searchBar.showsScopeBar = YES;
[searchBar invalidateIntrinsicContentSize];
[searchBar setShowsCancelButton:YES animated:YES];
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
searchBar.showsScopeBar = NO;
[searchBar invalidateIntrinsicContentSize];
[searchBar setShowsCancelButton:NO animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2588 次 |
| 最近记录: |