【问题标题】:Main UITableVew is visible in searchResultsTableView status bar主 UITableView 在搜索结果 TableView 状态栏中可见
【发布时间】:2014-03-11 11:02:11
【问题描述】:

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

如您所见,UISearchBar 是不透明的,因此它后面没有任何东西,但状态栏仍然是半透明的。
我已经在searchDisplayController: willShowSearchResultsTableView: 中添加了[self.tableView setHidden:YES];,但这是一个非常原始的解决方案,当我的常规UITableView 在搜索开始时显示时不起作用。

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多