关键词:
【中文标题】如何让 TableView 中的 SearchBar 看起来像设置应用程序中的那样【英文标题】:How do I get a SearchBar in a TableView to look like the one in the Settings App 【发布时间】:2018-04-09 20:31:26 【问题描述】:在我的应用程序中,我有一个可搜索的 TableView,顶部有一个 SearBar。我添加了 SearchBar,通过 Interface Builder 将一个拖入,然后将我的 TableView 设置为 UISearchBarDelegate 并添加:
searchBar.delegate = self
这会产生以下外观
我想要的是我的 SearchBar 看起来像设置应用程序中的那个(每个 iOS 设备上预装的那个)
此外,单击时,它的行为有所不同,因为它会使视图的其余部分变灰并删除此处所示的标题
而我的 SearchBar 只打开键盘并在点击时显示光标。
我需要做什么才能实现这种特定的外观和感觉?
【问题讨论】:
您需要先将搜索栏控制器设置为navigationItem
- UINavigationItem#searchController
也许Large Title and Search in iOS 11 和/或Large Titles For Navigation Bars In iOS 11 可以提供帮助
【参考方案1】:
您可以通过以编程方式将 UISearchController 添加到 navigationBar 来轻松完成。使用代码创建 UISearchController :
let controller = UISearchController(searchResultsController: nil)
然后将其添加到navigationItem,
controller.searchResultsUpdater = self
controller.obscuresBackgroundDuringPresentation = false
controller.searchBar.placeholder = "Search Candies"
definesPresentationContext = true
if #available(iOS 11.0, *)
navigationItem.searchController = controller
else
navigationItem.titleView = searchController.searchBar
信用:https://www.raywenderlich.com/157864/uisearchcontroller-tutorial-getting-started
【讨论】:
这正是我想要的。非常感谢。干杯!【参考方案2】:您可以通过创建UISearchBar
的子类来自定义它:
class CustomSearchBar: UISearchBar
override init(frame:CGRect)
super.init(frame: frame)
setup()
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
setup()
func setup()
self.placeholder = "Search"
// Color of the text field (in your case it should be gray)
self.barTintColor = yourGraySearchBarColor
// Color of the cursor (you don't need to change this if you want to stay with the default blue)
self.tintColor = UIColor.white
// Background color of you search bar
self.backgroundImage = UIImage(named: "SearchBarBG")
要设置搜索栏的背景颜色,您必须创建一个图像,这是一个只有您想要的颜色(在您的情况下为浅灰色)的正方形,大小无关紧要,我会将其设置为 20x20 像素。
可以通过在整个屏幕上方添加一个半透明的灰色UIView来使背景变暗(SearchBar除外,所以它需要在SearchBar下方)。如果您采用UISearchBarDelegate
,则可以在searchBarTextDidBeginEditing(_ searchBar: UISearchBar)
函数中添加此叠加层,并在searchBarTextDidEndEditing(_ searchBar: UISearchBar)
函数中将其删除。
【讨论】:
如何让tableview中的cell点击时不显示蓝色背景?
我是这样写的:-(void)viewDidLoad……[self.tableViewsetSeparatorStyle:UITableViewCellSeparatorStyleNone];[self.tableViewsetSeparatorColor:[UIColorclearColor]];[self.tableViewsetBackgroundView:nil];……-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)i... 查看详情
如何让 tableView.reloadData() 与核心数据正常工作?
】如何让tableView.reloadData()与核心数据正常工作?【英文标题】:HowdoIgettableView.reloadData()toworkproperlywithcoredata?【发布时间】:2019-12-0604:07:35【问题描述】:当我运行应用程序时,我可以填充我的tableview中的单元格,但是当我保存... 查看详情
IOS TableView 如何更新 TableView 中的元素
】IOSTableView如何更新TableView中的元素【英文标题】:IOSTableViewhowcanIupdateanelementinmyTableView【发布时间】:2018-08-2600:34:14【问题描述】:我正在使用Swift4,我终于让我的TableView单元工作正常。我有一个点赞按钮,当用户点击它时,... 查看详情
UISearchDisplayController 没有结果tableView?
】UISearchDisplayController没有结果tableView?【英文标题】:UISearchDisplayControllerwithnoresultstableView?【发布时间】:2009-07-3118:44:44【问题描述】:通常,UISearchDisplayController在激活时会使tableView变暗并聚焦searchBar。一旦您在searchBar中输入... 查看详情
如何将 panGestureRecognizer 添加到 TableView,并且在识别平底锅时仍然让 tableview 滚动?
】如何将panGestureRecognizer添加到TableView,并且在识别平底锅时仍然让tableview滚动?【英文标题】:HowcanIaddapanGestureRocgnizerToaTableView,andstillhavethetableviewscrollwhilerecognizingpansright?【发布时间】:2015-06-1305:38:53【问题描述】:我正在使... 查看详情
如何使用自定义模型类按部分按字母顺序对 tableView 中的数据进行排序?
】如何使用自定义模型类按部分按字母顺序对tableView中的数据进行排序?【英文标题】:HowdoyousortdatainatableViewalphabeticallybysectionusingacustommodelclass?【发布时间】:2017-01-1404:57:06【问题描述】:我是编码新手,一直在尝试按部分按... 查看详情
如何让 tableview 单元格从下到上填充? [关闭]
】如何让tableview单元格从下到上填充?[关闭]【英文标题】:HowdoIgettableviewcelltopopulatefrombottomtotop?[closed]【发布时间】:2017-05-0718:50:10【问题描述】:我想让单元格从tableview的底部向上开始。它目前正在从上到下。我正在从firebase... 查看详情
当我滚动 tableview 时,如何让 headerView 滚动(不停留在 tableview 的顶部)伴随 UItableViewCell
】当我滚动tableview时,如何让headerView滚动(不停留在tableview的顶部)伴随UItableViewCell【英文标题】:howcanimakeheaderViewscroll(notstayonthetopofthetableview)accompanyingwithUItableViewCellwheniwasscrollingtableview【发布时间】:2013-12-3108:24:58【问题描... 查看详情
SnapKit:如何以编程方式为 TableView 单元中的项目设置布局约束
】SnapKit:如何以编程方式为TableView单元中的项目设置布局约束【英文标题】:SnapKit:HowtosetlayoutconstraintsforitemsinaTableViewCellprogramatically【发布时间】:2019-02-2412:16:28【问题描述】:我是swift/iOS开发的初学者。来自web开发,与DOM/Box... 查看详情
如何阻止 UIView 使用 tableview 滚动?
】如何阻止UIView使用tableview滚动?【英文标题】:HowtostopaUIViewfromscrollingwithtableview?【发布时间】:2015-11-2503:57:33【问题描述】:我有一个UITableViewController,我在导航项的正下方和实际表格的上方放置了一个UIView。我遇到的问题... 查看详情
iOS:如何让 TableView 不填充高度?
】iOS:如何让TableView不填充高度?【英文标题】:iOS:HowtomakeTableViewnottofilltheheight?【发布时间】:2013-02-2510:43:30【问题描述】:我在xcode的xib编辑器中创建了一个表格视图。我已将表格视图放置在屏幕中间,它从中间某处开始(... 查看详情
如何让共享按钮在 tableview 单元格中快速工作?
】如何让共享按钮在tableview单元格中快速工作?【英文标题】:howtogetsharebuttontoworkintableviewcellswift?【发布时间】:2021-12-2613:53:57【问题描述】:我是swift新手,我正在使用tableviews创建提要。我有一个自定义表格视图单元格,它... 查看详情
如何让qml TableView行高动态适应内容
】如何让qmlTableView行高动态适应内容【英文标题】:HowtomakeqmlTableViewrowheightdynamicallyadapttocontent【发布时间】:2018-10-3111:32:38【问题描述】:问题如下:如果文本的长度大于单元格的宽度,则文本被换行,但行高不增加。显示剩... 查看详情
高度调整到 TableView 单元格中的内容?
】高度调整到TableView单元格中的内容?【英文标题】:HeightadjusttocontentinTableViewcell?【发布时间】:2016-06-1622:31:01【问题描述】:我对Swift还很陌生,我偶然发现了一个问题。我获取一些JSON数据并将其显示在TableView中,但问题是... 查看详情
Xamarin Forms - 如何让 TableView 和 ListView 扩展到 iPhone X 安全区域?
】XamarinForms-如何让TableView和ListView扩展到iPhoneX安全区域?【英文标题】:XamarinForms-HowtohaveTableViewandListViewExtendintoiPhoneXSafeArea?【发布时间】:2019-08-0820:45:04【问题描述】:我在页面构造函数中使用了特定于平台的使用安全区域,... 查看详情
如何让 iOS 在 tableView 上显示删除按钮,但不允许从右侧完全滑动删除
】如何让iOS在tableView上显示删除按钮,但不允许从右侧完全滑动删除【英文标题】:HowcanIgetiOStoshowadeletebuttononatableView,butnotallowafullswipefromtherighttodelete【发布时间】:2019-09-2413:07:09【问题描述】:从右侧完全滑动以从tableView中删... 查看详情
让 tableView 从 NSUserDefaults 中删除滑动删除项目 - 如何将这两个功能结合在一起?
】让tableView从NSUserDefaults中删除滑动删除项目-如何将这两个功能结合在一起?【英文标题】:LetthetableViewdeleteswipedeleteitemsfromNSUserDefaults-Howtobringthesetwofunctionstogether?【发布时间】:2015-01-2820:05:51【问题描述】:我想让我的应用程... 查看详情
单击tableview单元中的Collectionview时如何找到tableview的索引路径
】单击tableview单元中的Collectionview时如何找到tableview的索引路径【英文标题】:HowtofindtheindexpathoftableviewwhenCollectionviewisclickedwhichisintabelviewCell【发布时间】:2017-06-0605:55:50【问题描述】:我有一个表格视图单元格,其中包含集合... 查看详情