Xcodeバージョン8.2.1(8C1002)を使用していますので、Swift 3はデフォルト以外のセルでテーブルビューを作成しようとしていますセルdetailTextLabelまたはセルimageViewをnil以外にする。detailTextLabelとimageViewはテーブルビューのセルにアクセスできません
ユニバーサルデバイスでプロジェクトの展開ターゲットを9.0に設定しました。
インタフェースビルダーでは、1プロトタイプセルでダイナミックプロトタイプとしてコンテンツを確立しました。
インターフェイスビルダーで、私は、画像 "animal08.png"と識別子 "PlayerCell"を使用して、そのテーブルビューのセルスタイルを "正しい詳細"に設定しました。 viewDidLoad(FUNCオーバーライドのテーブルビューのビュー・コントローラ)で
:
self.tableView.register(UITableViewCell.self、forCellReuseIdentifier: "PlayerCell")
と
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "PlayerCell")!
print(cell.subviews.count)
cell.textLabel!.text = "Name: " + myNames[indexPath.row]
cell.detailTextLabel!.text = "Ranking: " + myRankings[indexPath.row].description
let avatarIndex = indexPath.row + 1
let avatarIndexName = "animal0" + avatarIndex.description
cell.imageView!.image = UIImage.init(named: avatarIndexName)
return cell;
}
私はiPhone 5のiOS 5.2(13C75)シミュレータ上でプログラムを実行すると、私は「cell.detailTextLabelの.textステートメントに到達したとき、私が取得:!
「致命的なエラー:予期せず、オプション値をアンラッピングしている間にゼロが見つかりました」
同様に、imageViewプロパティにアクセスしようとするとnilが検出されます。
print(cell.subviews.count)ステートメントは、セルのサブビューが1つしかないことを示しています。 インターフェイスビルダやinit(スタイル:UITableViewCellStyle、reuseIdentifier:String?)イニシャライザ以外で、UITableViewCellのセットがないか、UITableViewCellStyleプロパティを取得できます。
私は、initメソッドを使用するとdequeueReusableCellの利点が無効になると思います。この状況では使用しないでください。
私はtableview.registerメソッドがtableViewCellStyleをデフォルトにリセットしていることを実証していません。
上記のコードは、Apple Developerサイトの定型コードや、寄稿者の幅広いチュートリアルと同じようです。
したがって、どのようにしてdetailTextLabelおよびimageViewサブビューにアクセスしてデキューされたセルを使用できますか?
イメージビューと2つのラベルを持つカスタムテーブルビューセルを作成するか、uitableviewcellのスタイルを変更する –
"詳細表示"テーブルビューセルには詳細テキストラベルがありません。右の詳細項目を設定することはできません(あなたが上のコードで行ったようにイメージビューを設定すると、左にあるこのconfitではない)イメージビューを設定します。@ Fahadはカスタムを作成するテーブルビューセル。 – HAS