Francesco Destino
Francesco Destino

Reputation: 349

Bug with UITextField inside UITableViewCell

I have a problem with some TextField inside a UITableViewCell; i got two textfield inside of the table cell, when I tap on the the textField everything works fine as you can see in this two screenshots

1.

The number in red squares are my UITextField, when I tap on one of them it works fine

But when i click on the other textField the entire cell disappear like this

I have an empty space after the click on the other textfield

I have no function implemented, only a function that change font and textColor

func setPickers() {
    self.hourPicker.delegate = self
    self.minutePicker.delegate = self

    hourPicker.textColor = theme.grey
    minutePicker.textColor = theme.grey
    hourPicker.background = UIImage()
    minutePicker.background = UIImage()
    hourPicker.textAlignment = .center
    minutePicker.textAlignment = .center
    hourPicker.font = UIFont(name: "Roboto-Regular", size: 48)
    minutePicker.font = UIFont(name: "Roboto-Regular", size: 48)
}

This the cell in my storyboard

EDIT 2 Look my graphic debug what shows before the bug

And after it

The cell is called EventDetailFooterTableViewCell

EDIT 3 Here is where I initialize the cellView for the footer

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let cell = tableView.dequeueReusableCell(withIdentifier: "footerCell") as! EventDetailFooterTableViewCell

    cell.event = self.event
    cell.delegate = self
    cell.setView()

    cell.backgroundColor = theme.mainColor

    return cell
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {

    var height: CGFloat = 180.0

    var calendar = NSCalendar.current
    calendar.timeZone = TimeZone(abbreviation: "UTC")! //OR NSTimeZone.localTimeZone()
    let dateAtMidnight = calendar.startOfDay(for: Date())
    let todayLong = dateAtMidnight.millisecondsSince1970
    if let eventDay = event.dateTime?.millisecondsSince1970 {

        if eventDay >= todayLong {
            height = 280
        }
    }

    return height
}

Upvotes: 0

Views: 146

Answers (1)

kirander
kirander

Reputation: 2256

I see a problem. You are using regular cell as section footer and there is why you see unpredictable behaviour. You should use UITableViewHeaderFooterView instead. It is if you really need such design. Better solution will be to remove footer and make it cell instead.

Upvotes: 2

Related Questions