我刚开始学习迅速,我在看tableview和search栏function。 下面我有我的数组,这是一个水果的列表: var fruits: [[String]] = [["Apple", "Green"],["Pear", "Green"], ["Banana", "Yellow"], ["Orange", "Orange"]] 我把它们放在一个表格视图中,把水果名称作为标题,把颜色作为副标题。 我试图使用search栏来过滤,但我似乎无法得到它的权利。 我只想search水果的名字而不是颜色。 var filteredFruits = [String]() var shouldShowSearchResults = false func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { filteredFruits.removeAll() var i = 0 while i < fruits.count { var filteredFruits = fruits[i].filter ({ (fruit: String) -> Bool in return fruit.lowercased().range(of: searchText.lowercased()) […]
我使用UISearchController里面包含一个UITableView UIViewcontroller ,我这样做viewDidLoad : self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; self.searchController.delegate = self; self.searchController.searchResultsUpdater = self; self.searchController.searchBar.delegate = self; self.searchController.dimsBackgroundDuringPresentation = NO; self.searchController.hidesNavigationBarDuringPresentation = NO; self.definesPresentationContext = NO; 当我在导航栏中按下button时,我这样做: self.tableView.contentOffset = CGPointMake(0, 0 – self.tableView.contentInset.top); self.tableView.tableHeaderView = self.searchController.searchBar; [self.searchController.searchBar becomeFirstResponder]; 所有工作正常,但是当我从UITableView结果行中推UIViewController的UISearchBar呆在那里,也显示在另一个视图的内容,我怎么可以解雇,当我推视图,当我回去看到UITableView结果? 谢谢 编辑: 这是方法didSelectRowAtIndexPath的代码: – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; DetailListController *detailList = […]
我有一个应用程序,它可以很好地工作,在iOS 10上没有任何问题,但是在iOS 11和Xcode Beta 5中,我有这个奇怪的问题,search栏的范围看起来像是从底部切下的。 (Xcode beta和iOS 11的所有版本都是一样的)如果有人能把我放在正确的方向,我真的很高兴。 谢谢 上面你可以看到当我按下汉堡包菜单button时看到的东西。 这里没有问题..search栏也有一个范围栏,当点击时显示。我没有设置它以编程方式显示。但我想这是它的默认行为时,范围button标题设置。 问题: 当我点击search栏input信息,我看到上面的屏幕。 在iOS 10上,我没有任何问题。 但是现在,在iOS 11中,无论我做什么,我都无法使它像iOS 10一样工作。search范围栏显示为从底部切下。 这是如何显示在iOS 10中,我希望它在iOS 11中。 屏幕的故事板视图 我在这里粘贴相关的代码。 class SlideMenuViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UISearchControllerDelegate,UIGestureRecognizerDelegate{ let searchController = UISearchController(searchResultsController: nil) @IBOutlet var sview: UIView! @IBOutlet var tableView: UITableView! override func viewWillAppear(_ animated: Bool) { //some non relevant code before this if sview.subviews .contains(searchController.searchBar) { […]
我正在使用此代码来更改UISearchBar取消button标题: -(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{ self.searchDisplayController.searchBar.showsCancelButton = YES; UIView* view=_otsinguRiba.subviews[0]; for (UIView *subView in view.subviews) { if ([subView isKindOfClass:[UIButton class]]) { UIButton *cancelButton = (UIButton*)subView; if (cancelButton) { [cancelButton setTitle:@"Test") forState:UIControlStateNormal]; [cancelButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; } } } } 虽然改变文字工作正常,改变颜色不。 它保持黑色。
我有这个: http://postimg.org/image/oepn8hhzd/ 我需要这个: http://postimg.org/image/4bacislw5/ 我的search栏的代码 var searchBar:UISearchBar = UISearchBar(frame: CGRectMake(0, 0, 200, 0)) searchBar.tintColor = UIColor.blueColor() self.searchBar.layer.borderColor = UIColor.blueColor().CGColor self.searchBar.layer.borderWidth = 0.5 self.searchBar.layer.cornerRadius = 5.0 self.searchBar.clipsToBounds = true searchBar.placeholder = "Search for cities" searchBar.sizeToFit() self.searchBar.setImage(UIImage(named: "Search@3x"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal) self.searchBar.setImage(UIImage(named: "Close@3x"), forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal) searchBar.delegate = self var leftNavBarButton = UIBarButtonItem(customView: searchBar) self.navigationItem.leftBarButtonItem […]
我有一个UISearchBar设置的tableView。 每当用户开始在search栏中input时,应用程序就会崩溃。 我发现问题是,我正在使用自定义的tableViewCell(当我试图运行应用程序与默认tableViewCell它没有崩溃,并正常工作)。 有想法该怎么解决这个吗? 谢谢。 这是我的代码: import UIKit import CoreData class KeepTableViewController: UITableViewController, UISearchBarDelegate{ @IBOutlet weak var searchBar: UISearchBar! var filteredQuotes = [AnyObject]() var keptQuotes = [NSManagedObject]() override func viewDidLoad() { super.viewDidLoad() searchBar.delegate = self searchBar.showsScopeBar = true tableView.rowHeight = UITableViewAutomaticDimension getCoreData() searchDisplayController?.searchResultsTableView.registerClass(QuoteyTableViewCell.self, forCellReuseIdentifier: "Cell") } func getCoreData(){ var appDel : AppDelegate = UIApplication.sharedApplication().delegate as […]
我把searchBar放在tableHeaderView里面。 一切工作正常在iPhone 6,但在iPhone 5S我得到这个奇怪的结果? override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self tableView.sectionIndexColor = Constants.Colors.ThemeGreen tableView.sectionIndexBackgroundColor = UIColor.clearColor() tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() tableView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(Constants.Dimensions.TabBarHeight), 0) resultSearchController = UISearchController(searchResultsController: nil) resultSearchController.searchResultsUpdater = self resultSearchController.dimsBackgroundDuringPresentation = false resultSearchController.definesPresentationContext = true tableView.tableHeaderView = resultSearchController.searchBar resultSearchController.searchBar.sizeToFit() //Fetch data for the first time do{ try […]
我试图保持search栏在视图中滚动。 目前,我把它作为桌面视图中的标题,它的工作原理应该是这样,但当然,search栏会在屏幕下滚动屏幕。 我以为我可以做这个简单的修改这个代码示例: 我如何使用UISearchController在UISearchBar在我的导航栏,并具有范围button的iOS 8? searchController = UISearchController(searchResultsController: nil) searchController.searchResultsUpdater = self searchController.delegate = self searchController.searchBar.delegate = self searchController.dimsBackgroundDuringPresentation = false searchController.hidesNavigationBarDuringPresentation = false tableview.tableHeaderView = searchContoller.searchBar // How to put it elsewhere? //Alternative that also works navigationItem.titleView = searchController.searchBar 这个想法是采取一些其他的观点和做法 otherview = searchController.searchBar 例如一个UISearchBar的出口,或者一个空白的UIView,或类似的东西。 但是,如果我这样做,它不显示searchBar。 它似乎只能作为一个表的标题视图或作为navigationItem.titleView。 我错过了什么吗?
我已经添加了一个UISearchBar到我的PFQueryTableViewController的顶部。 我已经改变了searchBar的颜色作为我的应用程序的颜色,但在这样做,它似乎也已经改变了“取消”button的颜色右边的相同的颜色。 理想情况下,我想要的颜色是白色的。 这张图片显示了它目前的样子: 它看起来像没有“取消”button,但是,它只是与searchBar相同的颜色(你仍然可以按下它等) 有没有办法让我改变这个“取消”button的颜色为白色? 我所尝试过的一切似乎都没有什么区别。 我用来使UISearchBar这个颜色的代码是: UISearchBar.appearance().barTintColor = UIColor(hue: 359/360, saturation: 67/100, brightness: 71/100, alpha: 1) UISearchBar.appearance().tintColor = UIColor(hue: 359/360, saturation: 67/100, brightness: 71/100, alpha: 1) 在故事板中,我设置了这些: 最后,为了在SearchBar中创build占位符和文本白色,我使用了: for subView in self.filmSearchBar.subviews { for subsubView in subView.subviews { if let searchBarTextField = subsubView as? UITextField { searchBarTextField.attributedPlaceholder = NSAttributedString(string: NSLocalizedString("Search Cinevu film reviews", […]
我需要导航标题下的search栏如何以编程方式或通过故事板。 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,30, 250,44)]; searchBar.placeholder = @"Search"; UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc]initWithCustomView:searchBar]; searchBarItem.tag = 123; searchBarItem.customView.hidden = YES; searchBarItem.customView.alpha = 0.0f; self.navigationItem.leftBarButtonItem = searchBarItem; self.navigationItem.title = @"locations";