主要UITableVew在searchResultsTableView状态栏中可见

时间:2014-03-11 11:02:12

标签: ios objective-c cocoa-touch uikit uisearchdisplaycontroller

我的应用中有两个UITableView个(一个用于常规用途,另一个用于搜索)。当我使用常规状态栏时,状态栏是不透明的,但当我输入searchResultsTableView时,我可以看到常规UITableView中的一些项目。

enter image description here

正如您所看到的,UISearchBar是不透明的,所以后面没有任何内容,但状态栏仍然是准确的。
我已经在[self.tableView setHidden:YES];中添加了searchDisplayController: willShowSearchResultsTableView:,但这是一个非常原始的解决方案,在搜索开头显示我的常规UITableView时无效。

我的问题是如何让状态栏变得不透明?只是为了避免这种恼人的事情。

1 个答案:

答案 0 :(得分:0)

我找到了两个解决这个问题的方法。两者都适合我,但第二个更简单,你不必在代码中做任何事情。我希望你觉得它很有用!


第一个解决方案:

您可以在代码中创建自定义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中有一个名为剪辑子视图的小复选框,在这种情况下它非常有用。你可以找到在状态栏下显示的视图(在我的情况下它是UITableView)并将其剪辑到子视图。我不知道如何但在我的情况下UISearchBar开始影响状态栏,所以现在它的不透明颜色为UISearchBar