2016-06-06 11 views
1

Ich bin auf der Suche nach einer Gruppe von Benutzern von Backendless, ähnlich wie iPhone Kontakte gruppieren und sortieren. Ich möchte sectionIndexTitlesForTableView(_:), titleForHeaderInSection(_:) und sectionForSectionIndexTitle(_:) hinzufügen. Ich habe kein Tutorial dazu gefunden, und ich bin seit Wochen festgefahren.Gruppieren und sortieren Backendless-Daten in UITableview mit Swift

Alphabetical index

Bisher bin ich in der Lage Benutzer abzurufen und die Tabellenansicht zu füllen. Ich implementierte auch UISearchBarDelegate.

var users: [BackendlessUser] = [] 
var filteredUsers : [BackendlessUser] = [] 

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 

    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    if tableView == self.tableView { 

     return users.count 

    } else { 

     return self.filteredUsers.count 
    } 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = UITableViewCell() 

    if tableView == self.tableView { 

     let user = users[indexPath.row] 

    cell.textLabel?.text = user.name 

    } else { 

     let filteredUser = filteredUsers[indexPath.row] 

     cell.textLabel?.text = filteredUser.name 

    } 

    return cell 
} 

Antwort

1

Sie müssen ein Wörterbuch der Array (Name 'data' zum Beispiel) haben

data["A"] = ["Ananas", "Anaconda", "Apple"] 

data["B"] = ["Banana", "Baby"] 

... 
data["Z"] = ["Zoro"] 

beginnen:

let letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
var headers: [String] = [] 
var data : [String: [String]] = [:] // Choose your type 

override func viewDidLoad(){ 
    // Do your stuff... 

    headers = letters.keys.sort() 

    // init your data var 
    data = ... 

    tableView.reloadData() 
} 
  • für Header:

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    
        return headers.count 
    } 
    
    func sectionHeaderTitlesForTableView(tableView: UITableView) -> [String]?{ 
    
        return headers 
    } 
    
    func tableView: UITableView, titleForHeaderInSection section: Int) -> String?{ 
    
        return headers[section]; 
    } 
    
  • Zelle

    func tableView(tableView: UITableView, numberOfRowInSection section: Int) -> Int { 
        // Exemple 
        return data[section].count 
    
    } 
    
+0

vergessen Sie nicht, dieses Thema gelöst zu setzen, wenn es funktioniert – Masterfego