2016-05-24 60 views
0

需要输出像这个图像在我的iPhone没有使用UITableview.Can任何人请帮助我这一点。如何在没有UITableview的情况下在UISearchbar中实现自动完成?

enter image description here

+1

如果我理解正确的话,那是因为你没有在开始一个UITableView(可能是地图搜索实例)。然后,该项目是手动'UITextField' +“浮动”'UITableView'来显示结果。 – Larme

+0

请提供更多关于你想达到什么的信息,你到目前为止所尝试的。 – mangerlahn

+0

为什么你不能使用tableview?这可能是一个用户界面没有任何分隔线 – bolnad

回答

0

首先,你需要有一个包含所有数据要提供尽可能为用户可能选择一个的NSArray。这里我使用的是pastURL的NSMutableArray,每次用户浏览到一个URL,我们都会将它添加到数组中。 接下来,您需要创建一个视图来显示用户可以从中选择的URL。这样做的一个好方法就是在输入字段下方创建一个表格视图,列出所有可能的选项。此表格视图只有在用户在文本字段中输入数据时才会显示,并且可以隐藏其余时间。

autocompleteTableView = [[UITableView alloc] initWithFrame: 
    CGRectMake(0, 80, 320, 120) style:UITableViewStylePlain]; 
autocompleteTableView.delegate = self; 
autocompleteTableView.dataSource = self; 
autocompleteTableView.scrollEnabled = YES; 
autocompleteTableView.hidden = YES; 
[self.view addSubview:autocompleteTableView]; 

使用UITextFieldDelegate贯彻shouldChangeCharactersInRange协议。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    autocompleteTableView.hidden = NO; 

    NSString *substring = [NSString stringWithString:textField.text]; 
    substring = [substring 
    stringByReplacingCharactersInRange:range withString:string]; 
    [self searchAutocompleteEntriesWithSubstring:substring]; 
    return YES; 
} 

- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring { 

    // Put anything that starts with this substring into the autocompleteUrls array 
    // The items in this array is what will show up in the table view 
    [autocompleteUrls removeAllObjects]; 
    for(NSString *curString in pastUrls) { 
    NSRange substringRange = [curString rangeOfString:substring]; 
    if (substringRange.location == 0) { 
     [autocompleteUrls addObject:curString]; 
    } 
    } 
    [autocompleteTableView reloadData]; 
} 

以了解详情:Tutorial

或下载演示应用程序:Demo App

+0

我已经下载了这个应用程序,并尝试,但它不工作:( – ananthi

+0

它在这里工作,你收到了什么错误? –

+0

我试着用上面的code.its工作正常谢谢:) – ananthi

相关问题