我正在使用UITableView
部分来构建索引表,假设我有一个包含500个字符串数据的数组。现在我需要索引表格,以便轻松滚动1,50,100,150,200等等,直到500.所以当我滚动到50时,我会转到indexPath.row 50.
我真的无法实现它,我尝试了以下内容:
@IBOutlet weak var mytableView: UITableView!
var tableData = [String]()
var indexOfNumbers = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableData = [
// 500 lines of string array of different starting letter
]
let indexNumbers = "0 50 100 150 200 250 300 350 400 450 500"
indexOfNumbers = indexNumbers.componentsSeparatedByString(" ")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return tableData.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
// Configure the cell...
cell.textLabel?.text = tableData[indexPath.section]
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {
return indexOfNumbers
}
func tableView(tableView: UITableView, sectionForSectionIndexTitle title: String, atIndex index: Int) -> Int {
let temp = indexOfNumbers as NSArray
return temp.indexOfObject(title)
}
答案 0 :(得分:2)
我看到你有11节,每节1排。您可以滚动到每一行(根据您的代码,该部分的唯一行)。如果你想做你在问题中解释的内容,请在50-50个单元格中分隔tableData
(以数组方式排列)。在每个部分加载50个单元格,删除最后一部分(第500个)。
您也需要解决此问题,因为componentsSeparatedByString
会返回一组分离的组件。
var indexOfNumbers = [NSArray]()
let indexes = "0 50 100 150 200 250 300 350 400 450 500"
indexOfNumbers = indexes.componentsSeparatedByString(" ")
您可以使用subarrayWithRange
类的NSArray
方法将数组分开。 目标C中的代码。
NSMutableArray *mutA=[[NSMutableArray alloc]init];
for (int i=0; i<10; i++)
{
NSArray *halfArray;
NSRange theRange;
theRange.location = i*50;
theRange.length = [mapCat count] / 10;
halfArray = [mapCat subarrayWithRange:theRange];
[mutA addObject:halfArray];
}