【发布时间】:2015-09-06 13:02:14
【问题描述】:
我正在尝试将自定义 UITableViewCell 添加到我的拆分视图控制器主控。当我运行我的应用程序时,单元格不会出现,尽管它们确实携带了 println 语句所确认的信息。经过一番研究,我发现只生成了标准的 UITableViewCells。
Table ViewController 有通过 Storyboard 连接的 Data Source 和 Delegate,而 UITableViewCell 有一个带有 Identifier 的自定义 Class。
TableView 和 TableViewCell 在同一个 ViewController 中。
TableViewCell 可重用标识符是“ArtistCell”,它的类是 ArtistCell。
import UIKit
import MediaPlayer
class ArtistsMasterTableViewController: UITableViewController, UITableViewDelegate, UITableViewDataSource {
var artistsQuery:MPMediaQuery!
var artists:NSArray!
var artistAlbums:NSArray!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
artistsQuery = MPMediaQuery.artistsQuery()
artists = artistsQuery.collections
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return artists.count
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println(artists[indexPath.row].items)
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("ArtistCell", forIndexPath: indexPath) as! ArtistCell
cell.backgroundColor = UIColor.clearColor()
var rowItem:MPMediaItem = artists.objectAtIndex(indexPath.row).representativeItem
if let artwork = rowItem.valueForProperty(MPMediaItemPropertyArtwork) as? MPMediaItemArtwork {
cell.artistImage!.image = artwork.imageWithSize(cell.artistImage.bounds.size)
}
cell.artistNameLabel.text = rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String
// artistCell.albumsLabel.text = rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String
// artistCell.songsLabel.text = rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String
return cell
}
自定义单元格:
class ArtistCell: UITableViewCell {
@IBOutlet weak var artistImage: UIImageView!
@IBOutlet weak var artistNameLabel: UILabel!
@IBOutlet weak var albumsLabel: UILabel!
@IBOutlet weak var songsLabel: UILabel!
}
【问题讨论】:
-
您是否将单元格设计为同一故事板文件中表格视图的原型单元格?
-
是的,单元格是一个原型并且在同一个情节提要中。
-
它们是否也在同一个 ViewController 中?
-
是的,Table View 和 Table View Cell 都在同一个 ViewController 中。
-
在IB中检查你的cell的reuse id,是
ArtistCell吗?
标签: ios swift uitableview uisplitviewcontroller