ios – swift中表格视图中的字母部分

我有一个按字母顺序排列的名称列表,现在我要在表视图中显示这些名称.我正在努力为每个字母分组这些名字.

我的代码如下所示:

let sections:Array<AnyObject> = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
var usernames = [String]()

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

    let cellID = "cell"

    let cell: UITableViewCell = self.tv.dequeueReusableCellWithIdentifier(cellID) as UITableViewCell

    cell.textLabel?.text = usernames[indexPath.row]

return cell
}

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

    return usernames.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int{

    return 26
}


func sectionIndexTitlesForTableView(tableView: UITableView) -> [AnyObject]!{

    return self.sections
}

func tableView(tableView: UITableView,sectionForSectionIndexTitle title: String,atIndex index: Int) -> Int{

        return index
}

func tableView(tableView: UITableView,titleForHeaderInSection section: Int) -> String?{

        return self.sections[section] as? String
}

这一切都非常好,除了分组,使我的表视图最终如下所示:

所以我知道你应该能够使用过滤的函数在一个数组,但我不明白如何实现它.

任何关于如何进行的建议将不胜感激.

解决方法

您可以将带有名称的数组放入具有字母键的字典中.

例如

var names = ["a": ["and","array"],"b": ["bit","boring"]]; // dictionary with arrays setted for letter keys

那么您需要以下一个方式访问您的字典中的值

func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int{
    return names[usernames[section]].count; // maybe here is needed to convert result of names[...] to NSArray before you can access count property
}

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

    let cellID = "cell"

    let cell: UITableViewCell = self.tv.dequeueReusableCellWithIdentifier(cellID) as UITableViewCell

    cell.textLabel?.text = names[usernames[indexPath.section]][indexPath.row]; // here you access elements in arrray which is stored in names dictionary for usernames[indexPath.section] key

return cell
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...