Пользовательский вид не кликабелен после addSubview - PullRequest
0 голосов
/ 25 мая 2019

Просмотр иерархии до addSubview:

Просмотр> TableView

Просмотр иерархии после addSubview:

Просмотр> TableView && View> CustomView

После вызова addSubview CustomView отображается поверх TableView, поскольку его фрейм меньше и был добавлен после TableView.Тем не менее, у меня есть кнопки и текстовые поля в CustomView, ни одно из которых не работает.Даже когда я нажимаю на CustomView, scrollView в TableView, кажется, захватывает tapGesture.Как я могу сделать так, чтобы кнопки и текстовые поля CustomView могли принимать прикосновения?

Кроме того, фоновый цвет CustomView ясен, показывая нижнюю часть таблицы, когда пользовательский вид добавляется в иерархию видов.Я попытался установить цвет фона в раскадровке и программно, но он все еще застрял.Как я могу это исправить?

class masterViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

//blah blah
@IBOutlet weak var tableView: UITableView! // tableView is added in the storyboard

let newForm = NewFormView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
    newForm.backgroundColor = UIColor.white
    self.view.addSubview(newForm)
    newForm.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        newForm.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
        newForm.centerYAnchor.constraint(equalTo: self.view.centerYAnchor)
        ])
}

newForm - это перо UIView с кнопками и полями текста, добавленными в раскадровку пера

1 Ответ

1 голос
/ 25 мая 2019

Вам необходимо добавить ограничения ширины и высоты

NSLayoutConstraint.activate([
    newForm.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
    newForm.centerYAnchor.constraint(equalTo: self.view.centerYAnchor),
    newForm.widthAnchor.constraint(equalToConstant:300),
    newForm.heightAnchor.constraint(equalToConstant:300)
])

Как и при

newForm.translatesAutoresizingMaskIntoConstraints = false

ваш кадр становится недействительным и не активен при приеме касаний

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...