func tableVIEw(tableVIEw: UItableVIEw!,cellForRowAtIndexPath indexPath: NSIndexPath!) -> UItableVIEwCell! { var cell : UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr("Cell") as UItableVIEwCell if (cell == nil) { cell = UItableVIEwCell(style: UItableVIEwCellStyle.Value1,reuseIDentifIEr: "Cell") } cell.textLabel.text = "TEXT" cell.detailTextLabel.text = "DETAIL TEXT" return cell }另请参见 matt’s answer,其中包含解决方案的第二部分
让我们找到一个解决方案,而不创建自定义子类或nib
真正的问题是,Swift区分可以为空的对象(nil)和不能为空的对象。如果您没有为您的标识符注册一个nib,那么dequeueReusableCellWithIDentifIEr可以返回nil。
这意味着我们必须将变量声明为可选:
var cell : UItableVIEwCell?
我们必须使用as?不是
//variable type is inferredvar cell = tableVIEw.dequeueReusableCellWithIDentifIEr("CELL") as? UItableVIEwCellif cell == nil { cell = UItableVIEwCell(style: UItableVIEwCellStyle.Value1,reuseIDentifIEr: "CELL")}// we kNow that cell is not empty Now so we use ! to force unwrapPing but you Could also define cell as// let cell = (tableVIEw.dequeue... as? UItableVIEwCell) ?? UItableVIEwCell(style: ...)cell!.textLabel.text = "Baking Soda"cell!.detailTextLabel.text = "1/2 cup"cell!.textLabel.text = "Hello World"return cell总结
以上是内存溢出为你收集整理的在Swift中的UITableView全部内容,希望文章能够帮你解决在Swift中的UITableView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)