iOS - Как я могу щелкнуть UIButton за UITableView с прозрачным заголовком
У меня есть UIButton в нижнем слое UIViewController. И у меня есть UITableView (полный размер экрана) поверх UIButton, UITableView имеет заголовок (UIView), который имеет прозрачный фон, который может быть в состоянии видеть и показывать UIButton.
Кнопка UIB не активируется, даже когда кнопка появляется за заголовком табличного представления.
В ячейке моего tableView и в заголовке tableView есть кнопки, поэтому я не смог установить headerView.userInteraction = true
или же tableView.userInteraction = true
Я пытался использовать pointInside:withEvent:
а также hitTest:withEvent:
, UIButton все еще не активен в обоих случаях.
Какие-либо предложения? Спасибо
2 ответа
Вы могли бы использовать UITapGestureRecognizer
например вот так:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
...
let headerViewGesture = UITapGestureRecognizer(target:self, action:#selector(MyClass.headerViewTap(_:)))
headerView.addGestureRecognizer(mainViewGesture)
...
}
func headerViewTap(recognizer: UITapGestureRecognizer) {
if recognizer.state == UIGestureRecognizerState.Recognized
{
let touchLocation = recognizer.locationInView(recognizer.view)
print(touchLocation)
if CGRectContainsPoint(myButton.frame, touchLocation) {
print("button was touched")
}
}
}
Пожалуйста, попробуйте привести SubSubviewToFront, чтобы кнопка была кликабельной.
self.view.bringSubviewToFront(yourButtton)
Или вы можете проверить в раскадровке, находится ли кнопка внутри какого-либо вида, и добавить, чтобы кнопка была правильно размещена в раскадровке. Кнопка должна находиться под табличным представлением, как на картинке.
Вы можете попробовать оба способа, и дайте мне знать, если у вас есть какие-либо сомнения.