2017-03-17 9 views
-3

セクションに行が返されない場合は、現在、テーブルビューヘッダーを隠しています。これは私が現在持っているが、それは、実行時にEXC_BAD_ACCESSエラーを返すものです:セクションのnumberOfRowsが0のときにテーブルビューヘッダーを非表示にします。

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    let headerHeight: CGFloat 

    switch section { 
    case 0: 
     headerHeight = 0 
    case 1: 
     if peopleImagesTableView.numberOfRows(inSection: 1) == 0 { 
      headerHeight = 0 
     } else { 
     headerHeight = 40 
     } 
    default: 
     headerHeight = 0 
    } 
    return headerHeight 
    } 
+0

浮動小数点値を返す必要があります。 –

+0

コード行でエラーが発生していますか? – rmaddy

+0

@rmaddyその答えをつけて申し訳ありません。: –

答えて

0

私はこのラインif peopleImagesTableView.numberOfRows(inSection: 1) == 0 {で問題だと思います。 tableView(_:heightForHeaderInSection:)tableView(_:numberOfRowsInSection:)より前に実行されるので、行数を知ることができず、アプリケーションがクラッシュするためです。 numberOfRows関数を呼び出す代わりに、データ配列をチェックする必要があります。たとえば、

if data[1].count == 0 { 
    headerHeight = 0 
} else { 
    headerHeight = 40 
} 
関連する問題