标签: uisearchbar

如何使用UISearchDisplayController/UISearchBar过滤NSFetchedResultsController(CoreData)

我正在尝试在基于CoreData的iPhone应用程序中实现搜索代码.我不知道该怎么办.该应用程序已经有一个带有谓词的NSFetchedResultsController,用于检索主TableView的数据.在改变太多代码之前,我想确保自己走在正确的道路上.我很困惑,因为很多例子都是基于数组而不是CoreData.

以下是一些问题:

  1. 我是否需要第二个NSFetchedResultsController只检索匹配的项目,或者我可以使用与主TableView相同的项目吗?

  2. 如果我使用相同的,它是否像清除FRC缓存然后更改handleSearchForTerm:searchString方法中的谓词一样简单?谓词是否必须包含初始谓词以及搜索词,还是记得它首先使用谓词来检索数据?

  3. 我如何回到原始结果?我只是将搜索谓词设置为nil吗?难道不会杀掉用于首先检索FRC结果的原始谓词吗?

如果有人使用FRC搜索任何代码示例,我将不胜感激!

iphone search core-data uisearchbar uisearchdisplaycontroller

145
推荐指数
6
解决办法
5万
查看次数

如何在iOS7中更改UISearchBar的背景颜色

如何在iOS7中更改UISearchBar的背景颜色?

在此输入图像描述

不是灰色,我想像我的uinavigationbar一样改变颜色

如果我使用此代码,那就是出来的

searchBar.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

那不是红色!!! 这与导航栏的背景颜色完全相同.

objective-c background-color uisearchbar uisearchdisplaycontroller ios7

71
推荐指数
4
解决办法
5万
查看次数

71
推荐指数
9
解决办法
4万
查看次数

NavigationBar中的iOS 11 SearchBar

在iOS 11中,Apple通过使角落更圆,高度更大来重新设计UISearchBar.只需将它设置为navigationItem的titleView,就可以将UISearchBar添加到navigationBar非常简单navigationItem.titleView = searchBar.

但是,在iOS 11中,它似乎不再像预期的那样工作.看看我们使用iOS 10和iOS 11比较相同设置的屏幕

iOS 10 在此输入图像描述

iOS 11 在此输入图像描述

您可以清楚地看到SearchBar增加了NavigationBar的大小,但条形按钮没有正确对齐.此外,searchBar不再使用左侧的可用空间.

将searchBar放入包装器视图以获取iPad上的取消按钮,如此处所述取消按钮未显示在UISearchBar中似乎不再起作用,因为searchBar根本不可见.

如果有人有类似的问题或已经知道如何解决/改善这一点,我将非常感激.

这是使用Xcode 9 Beta 4构建的.也许将来的版本将解决这个问题.

更新:

由于这没有得到修复,我们决定使用以下解决方案.我们向NavBar添加了一个新的UIBarButtonItem,然后它呈现了一个新的ViewController,我们只将一个searchBar放入NavBar,而这似乎没有用.使用所选答案可能是最佳解决方案,因为Apple 11和iOS 11希望我们使用这种新设计,即使它没有给我们原先想要的结果.另一种可能解决此问题的方法可能是自定义SearchBar,但这是另一个主题.

uinavigationbar uisearchbar ios11

69
推荐指数
3
解决办法
3万
查看次数

iOS 7 UISearchDisplayController搜索栏在搜索时重叠状态栏

我正在为iOS 7更新我的应用程序,并且我正在调整所有视图以考虑新的透明状态栏(我的应用程序仍将使用不透明的导航栏).

在每个视图中调整状态栏相对容易,除了我在一个视图控制器中连接到UISearchDisplayController的UISearchBar时遇到的一个主要问题.

搜索栏似乎正常显示,如下所示:

搜索栏http://imageshack.us/a/img163/9128/06vx.png

问题是,一旦我开始搜索,导航栏就会消失(应该如此),但其他一切也会向上移动以重叠状态栏:

破碎的搜索栏http://imageshack.us/a/img11/8237/corh.png

这似乎没有按预期工作,因为屏幕变暗发生在搜索栏下方20个像素处,搜索栏应该在此处结束.

在iOS 7中是否有针对此的内置解决方案?每次用户开始和结束搜索时,我不必为每个视图手动调整帧.

谢谢!

statusbar uisearchbar uisearchdisplaycontroller ios ios7

66
推荐指数
7
解决办法
5万
查看次数

如何在iOS上更改UISearchBar组件的内部背景颜色

我知道如何删除/更改UISearchBar搜索字段周围的背景颜色:

[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];
self.searchBar.backgroundColor = [UIColor grayColor];
Run Code Online (Sandbox Code Playgroud)

实现了UISearchBar定制

但是不知道如何在里面这样做:

期望的UISearchBar定制

这需要与iOS 4.3+兼容.

customization objective-c background-color uisearchbar ios

61
推荐指数
14
解决办法
7万
查看次数

由UISearchController在表头视图中呈现的UISearchBar在活动时动画太远

我正在使用UISearchController在tableview的标题视图中显示一个搜索栏:

...
self.searchController.hidesNavigationBarDuringPresentation = NO;            
self.presentingTVC.tableView.tableHeaderView = self.searchController.searchBar;
[self.searchController.searchBar sizeToFit];
self.presentingTVC.tableView.tableHeaderView = self.searchController.searchBar;
Run Code Online (Sandbox Code Playgroud)

(需要设置tableHeaderView属性两次,否则标题视图与第一行重叠,参见SO上的几个答案)

这是它看起来的样子,在不活动时完美地处于适当位置 非活动搜索栏位于正确位置

搜索栏应该在活动时保持原位 - 我不希望它向上移动以隐藏导航栏.但它意外地动画下来,在它和导航栏之间留下一个空白:

屏幕截图显示搜索栏动画太远了

这是一个 奇怪的搜索栏动画视频

如果我只是使用与UISearchController分开的搜索栏,则它在激活时不会显示相同的行为.

在我的呈现视图控制器中,我有self.definesPresentationContext = YES;self.navigationController.navigationBar.translucent = YES;,并且在IB中没有任何"扩展边缘"框是活动的(所有这些似乎都可能使搜索演示文件无法读取).

有谁知道如何阻止搜索栏动画下来?

uitableview uisearchbar ios ios8 uisearchcontroller

56
推荐指数
7
解决办法
4万
查看次数

UISearchBar CGContext错误

我在视图中有一个UISearchBar,每当我点击它,键盘出现后 -

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

它将此发送到控制台:

<错误> CGContextSetStrokeColorWithColor::无效的上下文0x0.这是一个严重的错误.该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降低.此通知是礼貌的:请解决此问题.它将成为即将到来的更新中的致命错误.

它重复相同的错误.我想知道究竟是什么问题?

我相信有一个NULL上下文,但它与UISearchBar有什么关系?TNX.

cocoa-touch cgcontext uisearchbar ios

55
推荐指数
2
解决办法
2万
查看次数

更改UISearchBar /键盘搜索按钮标题

在UISearchBar控件中,是否可以将键盘的搜索键标题更改为"完成"?

iphone button title uisearchbar

54
推荐指数
5
解决办法
4万
查看次数

当UISearchController处于活动状态时,iOS 9 searchBar将从表头视图中消失

结构:

View1(单击按钮) - >以模态方式呈现(MyModalView:UITableViewController)

MyModalView嵌入了UISearchController.UISearchController的searchBar放在MyModalView.tableView.tableHeaderView中.

自iOS 8.0起,它一直运行良好.但是在iOS 9上,当UISearchController处于活动状态时,searchBar会消失.请看下面这些图片

模态视图:模态视图

UISearchController在iOS 8上处于活动状态:iOS 8中的搜索栏

UISearchController在iOS 9上处于活动状态:iOS 9中的搜索栏

非常标准的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    // Dynamically create a search controller using anonymous function
    self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false

        controller.searchBar.sizeToFit()
        controller.searchBar.delegate = self

        self.tableView.tableHeaderView = controller.searchBar

        return controller
    })()

    // Auto sizing row & cell height
    self.tableView.estimatedRowHeight = 130
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.definesPresentationContext = true

    // No footer for better presentation
    self.tableView.tableFooterView = UIView.init(frame: CGRectZero)
}
Run Code Online (Sandbox Code Playgroud)

这个问题也发生在iOS …

uisearchbar ios swift uisearchcontroller ios9

53
推荐指数
6
解决办法
3万
查看次数