如果我想在Objective-C中创建一个表格视图,每个单元格都有不同的定制,我会创建多个原型单元格,自定义它,并为每个单元格设置自己的标识符。然后我会添加这个代码,以便单元格看起来就像我自定义的那样。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
switch ( indexPath.row )
{
case 0:
CellIdentifier = @"fj";
break;
case 1:
CellIdentifier = @"pg";
break;
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier forIndexPath: indexPath];
return cell;
}
我现在正在将我的应用程序更新为Swift 2,并且想知道如何将上面的代码更改为在Swift 2中工作。谢谢!
答案 0 :(得分:1)
你走了:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cellIdentifier: String
switch indexPath.row {
case 0:
cellIdentifier = "fj"
case 1:
cellIdentifier = "pg"
default:
cellIdentifier = "Cell"
}
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)
return cell
}
您会注意到语法非常相似,函数调用遵循与Objective-C版本相同的格式。为了清理它,如@sunshine提到的那样,你可以将单元标识符作为枚举,并将特定行作为该枚举的实例存储在数组中。然后你的开关就在存储在数组中行索引的枚举值上。