UITableViewCell

时间:2018-12-13 11:44:17

标签: ios swift uitableview uitextfield

我在UITableViewCell内的一些TextField有问题;我在表格单元格中有两个文本字段,当我点击textField时,一切正常,如您在这两个屏幕截图中所见

1。

红色方块中的数字是我的UITextField,当我点击其中一个时,它可以正常工作

但是当我单击另一个textField时,整个单元格都这样消失

点击其他文本字段后,我有一个空白

我没有实现任何功能,只有一个可以更改字体和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)
}

这是我的故事板上的单元格

编辑2 看一下我的图形调试,发现bug之前显示的内容

之后

该单元格称为EventDetailFooterTableViewCell

编辑3 这是我为页脚初始化cellView的地方

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
}

1 个答案:

答案 0 :(得分:2)

我看到一个问题。您将常规单元格用作节的页脚,这就是为什么您会看到不可预测的行为的原因。您应该改用UITableViewHeaderFooterView。如果您确实需要这样的设计。更好的解决方案是删除页脚并使其成为单元格。