我之前跟着一個教程來了解故事板的基礎知識,並將該代碼用作編寫正在編寫的應用程序的參考。我想測試我的原型單元格佈局,但即使我在viewDidLoad中爲數組設置了值,它仍然拒絕顯示任何內容。iOS Swift Dequeued可重用單元格不顯示
import UIKit
class DetailViewController: UIViewController {
var cards = [Card]()
@IBOutlet weak var cardsTableView: UITableView!
@IBOutlet weak var detailDescriptionLabel: UILabel!
var detailItem: AnyObject? {
didSet {
// Update the view.
self.configureView()
}
}
func configureView() {
// Update the user interface for the detail item.
if let detail: AnyObject = self.detailItem {
if let label = self.detailDescriptionLabel {
label.text = detail.description
}
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cards.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//példányosítunk egy cellát
let cell = tableView.dequeueReusableCellWithIdentifier("CardCell", forIndexPath: indexPath) as CardCell
//kivesszük a sor adatait a listából
let card : Card = self.cards[indexPath.row]
cell.setCardNumber(card.number)
cell.layer.cornerRadius = 8
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
self.cards = [Card(number: 123456789,type: 1)]
dispatch_async(dispatch_get_main_queue(), {
self.cardsTableView.reloadData()
})
self.configureView()
}
}
我從一個主從結構開始,我班裏的細節場景,以DetailViewController和類標識符原型的設置CardCell
class Card{
let number: Int
let type: Int
init(number: Int, type: Int){
self.number = number
self.type = type
}
}
import UIKit
class CardCell: UITableViewCell {
@IBOutlet weak var cardNumber: UILabel!
func setCardNumber(number: Int){
cardNumber.text = String(number)
}
}
我敢肯定,這是基本的東西,但是我現在第二天一直在搞這個。任何建議表示讚賞。
當你點擊在故事板的原型電池,並期待在屬性檢查器中,你有沒有'CardCell'重用更多聲明標識符進入了嗎? – 2015-02-24 12:23:26
IBOutlet是否連接到故事板?您的故事板中的原型單元是否屬於CardCell類? – 2015-02-24 12:23:46
是的,是的,是的。 – 2015-02-24 12:47:33