以编程方式在tableview中添加搜索文本字段

时间:2016-07-12 10:07:00

标签: ios objective-c iphone swift uitableview

enter image description here

enter image description here

我使用storyboard在ViewController中使用搜索文本字段构建tableview,当我在位置拖动文本字段并且它运行良好时。但是,当我尝试没有故事板并在tableview中添加文本字段时,它覆盖在第一个单元格上。当我使用节头时,它将保持在固定位置。

tableview.addsubview (textfield)

textfield将覆盖tableView上的第一个单元格

感谢任何回复

3 个答案:

答案 0 :(得分:0)

您可以将默认搜索栏添加到UITableView,就像这样

UISearchBar *testbar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 70, 320, 44)];;
[[self tableView] setTableHeaderView:testbar];

或者您可以使用textfield创建第一个单元格,并通过自定义委托将数据从单元格传递给控制器​​。

答案 1 :(得分:0)

-(void)loadTableView {

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 64)];
    searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;

    self.tableView.tableHeaderView = searchBar; 

}

答案 2 :(得分:0)

var resultSearchController = UISearchController()

self.resultSearchController =({

        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.searchBar.barTintColor = UIColor(red: 70/255,green: 70/255,blue: 71/255, alpha:0.9)
        let textField = controller.searchBar.valueForKey("searchField") as! UITextField
        textField.backgroundColor = UIColor(red: 16/255,green: 16/255,blue: 16/255, alpha:0.3)
        controller.searchBar.tintColor = UIColor.lightGrayColor()
        controller.hidesNavigationBarDuringPresentation = false
        Segtable.tableHeaderView = controller.searchBar
        controller.definesPresentationContext = true
        controller.searchBar.delegate = self
        controller.searchBar.barStyle = UIBarStyle.Black
        return controller

    })()

以下是委托方法

func updateSearchResultsForSearchController(searchController:UISearchController)     { }