私は最後のスタティックセルボトムセパレータラインを取り除くために以下のコードを使用しています。テーブルをセーブすると、テーブルセパレータが表示されます。最後のスタティックセルセパレータラインは、テーブルビューをリロードした後に表示されます
スーパーVCでのみコード:
override func viewDidLoad() {
super.viewDidLoad()
let footerFrame = CGRect(x: 0.0, y: 0.0, width:
tableView.frame.size.width, height: 1.0)
tableView.tableFooterView = UIView(frame: footerFrame)
}
そして呼び出した後:私の子供ののtableView(didSelectRowAt indexPath:_)で
fileprivate func showDatePicker()
{
datePicker.setValue(UIColor.white, forKey: "textColor")
showsDatePicker = true
tableView.beginUpdates()
tableView.endUpdates()
tableView.contentInset = UIEdgeInsets(top: -20.0, left: 0.0,
bottom: 0.0, right: 0.0)
}
私はちょうどの日付ピッカーでセルの高さを変更しています:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
guard showsDatePicker else {
switch indexPath.row {
case CellIndex.withDatePicker:
return 0.0
default:
return 44.0
}
}
switch indexPath.row {
case CellIndex.withDatePicker:
return 217.0
default:
return 44.0
}
}
以降、私は区切り線を描いています!たぶんそれはSTATICセルの使用のため、唯一の方法は、各viewControllerに空のビューをストーリーボードに追加することです? tableView.tableFooterView = UIView()
をviewDid/WillLayoutSubviews
に置き換えると、画面効果がなくなります。私は、ストーリーボードのすべてのコントローラに空白のビューを追加したくないのですが、プログラムでそれを行う方法がありますか?
コードを共有していただけますか? –
Yeapは、必ず、しかしあまりない静的な細胞とのtableViewのための私のスーパークラスでのviewDidLoad(){ super.viewDidLoad() tableView.tableFooterView =のUIView() } FUNC –
オーバーライドを共有する、と私はリロードするまでには、セパレータを削除しますtableView –