に型のUIViewの値をキャストできませんでした私は、として宣言されたテーブルビューのクラスがあります。このクラスではSWIFT 4はUITableViewHeaderFooterView
class boatsVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
を、私は、背景色やセクションのためのテキストの色を変更したいです。この目的を達成するために、私は、次の2つのクラスを実装している:willDispayHeaderView機能の
let header = view as! UITableViewHeaderFooterView
線の信号SIGABRT:私は、コードを実行すると
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
view.backgroundColor = Constants.ppsBlue
return view
}
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let header = view as! UITableViewHeaderFooterView
header.textLabel?.textColor = UIColor.white
}
は、私がスレッド1を取得します。これらの関数の両方ですべてのコードをコメントアウトすると、アプリは必要に応じて実行され、セクションタイトルが正しく表示されます。しかし、それは私が使用したい色ではありません。私がしようとしているのは、セクションの背景色を変更し、テキストの色を変更することだけです。私がwillDisplayHeaderView関数のコードをコメントアウトすると、アプリケーションが動作し、セクションの背景色が私が望む色になりますが、セクションのタイトルは表示されません。
アイデア?
'UIView()'を作成しています。これは 'UITableViewHeaderFooterView'とは異なるクラスです。 'UITableViewHeaderFooterView'を初期化して使用するか、単に' UIView'として使用してください。 – Connor
私は、ログにエラーがあることを追加する必要があります: 'UIView'(0x1b363d9c8)の値を 'UITableViewHeaderFooterView'にキャストできません。 – CMan
Connorは言うように、最初の関数でUIViewを作成していて、 UITableViewHeaderFooterViewに強制的にダウンキャストします。これは、UIViewがUITableViewHeaderFooterViewではないため動作しません。最初の関数で別のオブジェクトを返す必要があります。何らかのテキストを表示したい場合はUILabelを使うことができますが、UIlabelもUITableViewHeaderFooterView – Paulw11