2016-05-24 61 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

相關問題