Pull-To-Refresh和搜索栏

时间:2014-08-07 22:24:27

标签: ios

我想知道哪种解决方案最适合下拉动作:Pull-To-Refresh与Pull-To-Search?如果我想在Mail应用程序中同时拥有(搜索栏和刷新),该怎么办?不知道应用程序商店中的批准是什么样的......

您如何使用UITableViewController

实现该功能?

2 个答案:

答案 0 :(得分:44)

您可以非常轻松地在UITableViewController中同时进行“Pull-To-Refresh”和“Pull-To-Search”。

这里是拉动刷新:

UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
[self.tableView addSubview:refresh];
self.refreshControl = refresh;

要知道何时被拉出',请向控件添加目标:

[self.refreshControl addTarget:self action:@selector(refreshContent:) forControlEvents:UIControlEventValueChanged];

在这里"拉到搜索":

UISearchBar *searchBar = [[UISearchBar alloc] init];
UISearchDisplayController *searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
self.tableView.tableHeaderView = searchBar;
self.tableView.contentOffset = CGPointMake(0, CGRectGetHeight(searchBar.frame));

正如您所看到的,Pull-To-Search实际上只是将searchBar添加为tableHeaderView并且最初稍微偏移了tableView,因此搜索栏最初没有显示。这根本不会干扰Pull-To-Refresh!

答案 1 :(得分:2)

以下是使用UISearchController对Swift 2有用的方法:

class YourTableViewController: UITableViewController, UISearchResultsUpdating {

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize the refresh control
    self.refreshControl!.addTarget(self, action: #selector(YourTableViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)

    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.sizeToFit()
    self.tableView.tableHeaderView = searchController.searchBar
    self.tableView.contentOffset = CGPointMake(0, CGRectGetHeight(searchController.searchBar.frame));

}

“。refresh(_ :)”指的是

func refresh(sender:AnyObject)
{
//Load Data

}

确保已启用“刷新”。

http://i.stack.imgur.com/e1K34.png

这个问题的第一个答案有助于:How to implement UISearchController in UITableView - SWIFT

我还发现本教程很有用:http://www.appcoda.com/custom-search-bar-tutorial/