Метод takeSubviewToFront не работает с раскрывающимся списком (UIView) - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть выпадающий список (это UIView с полностью встроенным UITableView).Верхняя привязка программно ограничена нижней привязкой UIButton, поэтому при нажатии кнопки открывается раскрывающийся список.См. Код ниже

Однако моя проблема заключается в том, что высота раскрывающегося раскрывающегося вида составляет 150, и единственная отображаемая часть представления - это часть внутри UITableViewCell (см. Изображение).с нижней частью, скрытой за ячейкой.

func genderDropdownViewConfig() {
    genderDropdownView.backgroundColor = .red
    genderDropdownView.frame = CGRect(x: 0, y: 0, width: 0, height: 0)
    genderDropdownView.translatesAutoresizingMaskIntoConstraints = false
    genderDropdownButton.addSubview(genderDropdownView)
    //genderDropdownButton.bringSubview(toFront: genderDropdownView)
    //tableView.cellForRow(at: IndexPath(row: 2, section: 0))?.superview?.addSubview(genderDropdownView)
    //tableView.cellForRow(at: IndexPath(row: 2, section: 0))?.superview?.bringSubview(toFront: genderDropdownView)

    genderDropdownButton.addSubview(genderDropdownView)
    tableView.bringSubview(toFront: genderDropdownButton)

    genderDropdownView.topAnchor.constraint(equalTo: genderDropdownButton.bottomAnchor).isActive = true
    genderDropdownView.centerXAnchor.constraint(equalTo: genderDropdownButton.centerXAnchor).isActive = true
    genderDropdownView.widthAnchor.constraint(equalTo: genderDropdownButton.widthAnchor).isActive = true
    //genderDropdownHeight = genderDropdownView.heightAnchor.constraint(equalToConstant: 0)
    genderDropdownHeight = genderDropdownView.heightAnchor.constraint(equalToConstant: 0)

    for subview in genderDropdownView.subviews {
        subview.backgroundColor = .clear
    }
}

enter image description here

Ответы [ 3 ]

0 голосов
/ 29 сентября 2018

Размер высоты вашей ячейки должен быть переопределен вашим dropDownView.Кажется, что высота ячейки contentView не имеет никакого отношения к высоте вашего dropDownView, чтобы преобразовать себя.

Я думаю, вам следует обновить высоту после нажатия кнопки.Вы можете попробовать этот код, чтобы обновить высоту вашей ячейки.

cell.contentView.size.height = dropDownView.frame.origin.y + dropDownView.frame.height
0 голосов
/ 29 сентября 2018

Полагаю, проблема в том, как вы добавляете GendayDropdownView к макету.

Попытайтесь добавить полDropdownView в основной вид ячейки с помощью

cell.view.addSubview(genderDropdownView)

а затем попросите представление ячейки перевести раскрывающийся вид вперед.

cell.view.bringSubview(toFront: genderDropdownButton)
0 голосов
/ 29 сентября 2018

Это, вероятно, связано с тем, как ваши слои определяются из раскадровки, похоже, что ваша метка "текущий вес" заставляет ваш раскрывающийся список уменьшаться.Может быть, определить ограничение по высоте для выпадающего раздела?

...