主 UITableView 在搜索结果 TableView 状态栏中可见
Posted
技术标签:
【中文标题】主 UITableView 在搜索结果 TableView 状态栏中可见【英文标题】:Main UITableVew is visible in searchResultsTableView status bar 【发布时间】:2014-03-11 11:02:11 【问题描述】:我的应用中有两个UITableView
s(一个用于常规使用,另一个用于搜索)。当我使用常规时,状态栏是不透明的,但是当我输入 searchResultsTableView
时,我可以看到常规 UITableView
中的一些项目。
如您所见,UISearchBar
是不透明的,因此它后面没有任何东西,但状态栏仍然是半透明的。
我已经在searchDisplayController: willShowSearchResultsTableView:
中添加了[self.tableView setHidden:YES];
,但这是一个非常原始的解决方案,当我的常规UITableView
在搜索开始时显示时不起作用。
我的问题是如何使状态栏不透明?只是为了避免这种烦人的事情。
【问题讨论】:
【参考方案1】:我找到了两个解决此问题的方法。两者都对我有用,但第二个更简单,您不必在代码中做任何事情。希望对您有用!
第一个解决方案:
您可以在代码中创建自定义UIView
并添加为子视图。如果您的应用程序具有UINavigationBar
或任何其他组件的一种颜色,并且它不会在整个生命周期中改变,您始终可以在application:didFinishLaunchingWithOption:
中实现它。否则,您可以随时添加此代码,但您必须记住将此子视图添加到正确的超级视图。这是代码示例:
UIView *addStatusBar = [[UIView alloc] init];
addStatusBar.frame = CGRectMake(0, 0, 320, 20);
addStatusBar.backgroundColor = [UIColor colorWithRed:0.79 green:0.79 blue:0.81 alpha:1];
[self.navigationController.view addSubview:addStatusBar];
第二种解决方案:
Xcode 中有一个名为 Clip Subviews 的小复选框,在这种情况下它非常有用。您可以找到在状态栏下可见的视图(在我的例子中是UITableView
)并将其剪辑到子视图中。我不知道如何,但就我而言,UISearchBar
开始影响状态栏,所以现在它是不透明的,颜色为 UISearchBar
。
【讨论】:
以上是关于主 UITableView 在搜索结果 TableView 状态栏中可见的主要内容,如果未能解决你的问题,请参考以下文章
UITableView tableHeaderView 高度计算
在 Table View Controller 中水平滚动 UITableView