2013-02-19 42 views
6

Tôi đang tạo một ứng dụng mà tôi cần thực hiện tự động hoàn thành khi người dùng nhập văn bản vào, với 10 từ gần nhất/xếp hạng cao nhất xuất hiện bên dưới trường văn bản.Thực hiện Tự động điền trong iOS

tôi đã được trao một danh sách khá lớn khoảng 80.000 từ và họ tương ứng 'ưu tiên' - một số trong đó xác định cách cao lên chúng xuất hiện trong autocomplete tùy thuộc vào kích thước của các con số, như thế này:

"transport international";19205 
"taxi";18462 
"location de voitures";18160 
"police";18126 
"formation";17858 

Tôi mới phát triển iOS và tự hỏi cách tốt nhất để làm điều này là gì? Tôi có nên chia 80.000 cụm thành các tệp nhỏ hơn hay chỉ giữ nó trong một? Điều gì sẽ nhanh hơn?

Tôi đã thấy tự động hoàn thành được sử dụng trong ví dụ cho iOS nhưng đó là một số lượng nhỏ đề xuất - tôi chưa từng thấy nó bằng cách sử dụng tệp lớn trước đây và rõ ràng là tôi muốn làm nhanh có thể cho trải nghiệm người dùng bổ sung.

Bất kỳ đề xuất nào về ví dụ, hướng dẫn hoặc đề xuất mã sẽ được đánh giá cao, cảm ơn.

Trả lời

6

Bạn có thể muốn sử dụng repo HTAutocompleteTextField, giải pháp hoàn hảo này.

+2

@ user1394965 [Repo này] (https://github.com/EddyBorja/MLPAutoCompleteTextField) có thể là những gì bạn muốn. –

+1

Hãy thử PJTernarySearchTree của tôi làm nguồn dữ liệu cho HTAutocompleteTextField: https://github.com/peakji/PJTernarySearchTree – PeakJi

2

https://github.com/TarasRoshko/TRAutocompleteView

Chỉ cần phù hợp với TRAutocompleteItemsSource giao thức và đó là nó. Giao thức được thiết kế với sự hỗ trợ async trong tâm trí. Ứng dụng demo và mẫu TRGoogleMapsAutocompleteItemsSource sẽ giúp bạn rất nhiều.

7

Nếu bạn thích điều gì đó tự động hoàn thành nhưng là một phân lớp trực tiếp của UITextField, thì MLPAutoCompleteTextField có thể bạn quan tâm.

MLPAutoCompleteTextField hoạt động đơn giản bằng cách yêu cầu nguồn dữ liệu tự động hoàn thành của nó cho một loạt đề xuất tự động điền mỗi khi văn bản trong trường văn bản thay đổi. Nó thậm chí có thể tự động sắp xếp các từ sao cho những từ gần nhất với nội dung người dùng đang nhập sẽ xuất hiện ở đầu danh sách tự động hoàn tất (sử dụng thuật toán Levenshtein Distance). Đề xuất tự động điền có thể là các chuỗi đơn giản hoặc các đối tượng triển khai giao thức MLPAutoCompletionObject.

Mẹo: Đối với tập dữ liệu lớn các thuật ngữ tự động hoàn thành, có thể bạn sẽ muốn chia nhỏ danh sách của mình dựa trên các chữ cái bắt đầu. (Ví dụ: Khi người dùng nhập chữ F, bạn cho trường văn bản tự động hoàn tất chỉ một danh sách các từ bắt đầu bằng F.)

MLPAutoCompleteTextLoại có thể sắp xếp hiệu quả hàng nghìn đề xuất trong một khoảng thời gian hợp lý và sẽ không bao giờ chặn Giao diện người dùng trong khi nó sắp xếp.

Hiện tại, các đề xuất có trọng số (ghi đè lên cách sắp xếp mặc định) là không thể nhưng đây là tính năng được lên kế hoạch.

0

link này hoạt động tốt cho tôi. Tùy thuộc vào mã của bạn, chỉ cần không bỏ lỡ sự khác biệt giữa UITextFieldUITextView.

Không có thư viện bổ sung nào, chỉ cần tùy chỉnh một cách dễ dàng UITableView và chức năng tìm kiếm.

Các vấn đề liên quan