作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个关于 uitableview 的问题。我在 uitableview 中有一个水果列表,在右侧导航栏中有一个过滤器按钮。当我们点击过滤器按钮时,我们如何对水果列表进行排序。我应该在 filterList 函数中做什么。下面是代码,请看。
/* Fruit.swift */
import Foundation
class Fruit {
var fruitName = ""
init(fruitName: String) { self.fruitName = fruitName }
}
class FruitsListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var fruitList: UITableView!
@IBOutlet var filterItem: UIBarButtonItem!
var fruitArr:[Fruit] = Fruit
override func viewDidLoad() {
super.viewDidLoad()
var barButton = UIBarButtonItem(title: "Filter", style: .Plain, target: self, action:"filterList")
self.navigationItem.rightBarButtonItem = barButton
var fruits1 = Fruit(fruitName: "Apple" as String)
var fruits2 = Fruit(fruitName: "Mango" as String)
var fruits3 = Fruit(fruitName: "Banana" as String)
var fruits4 = Fruit(fruitName: "Orange" as String)
fruitArr.append(fruits1)
fruitArr.append(fruits2)
fruitArr.append(fruits3)
fruitArr.append(fruits4)
}
func filterList() {/* ? */}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return fruitArr.count
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cell:ShowFruitCustomCellTableViewCell = tableView.dequeueReusableCellWithIdentifier('FruitCell') as ShowFruitCustomCellTableViewCell
let fruit = fruitArr[indexPath.row] cell.setCell(fruit.fruitName) return cell
}
}
}
最佳答案
好吧,就像听起来一样 - 您可以过滤列表:
func filterList() { // should probably be called sort and not filter
fruitArr.sorted() { $0.fruitName > $1.fruitName } // sort the fruit by name
fruitList.reloadData(); // notify the table view the data has changed
}
如果您只想反转项目而不是实际对它们进行排序(切换顺序),您可以执行 fruitArr.reverse()
而不是排序。
关于swift - 我们如何用 swift 语言对 uitableview 数据进行排序(升序和降序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25960064/
我是一名优秀的程序员,十分优秀!