Ограничить представление пользовательским представлением UIBarButtonItem - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать меню переполнения, подобное тому, что отображается на Android в панели навигации.Вот пример:

Android Overflow Menu Example

Я сделал это, создав UIView, который скрыт, если не нажата определенная кнопка.Это все работает нормально, но проблема заключается в ограничении меню переполнения кнопкой.

В меню переполнения я пытаюсь ограничить меню переполнения кнопкой (эта кнопка является пользовательским представлением UIBarButtonItem):

topAnchor.constraint(equalTo: button.topAnchor).isActive = true
leftAnchor.constraint(equalTo: button.leftAnchor).isActive = true

Я получаю следующую ошибку:

UIButton:0x7f84974081e0.top"> because they have no common ancestor.  Does the constraint or its anchors reference items in different view hierarchies?  That's illegal.

Как разместить UIView относительно пользовательского представления элемента кнопки панели навигации?

Примечания:

  1. По какой-то причине пользовательское представление UIBarButtonItem не является потомком контроллера представления , но UINavigationBar имеет значение?
  2. Попытка подобной идеи споповер, но не смог надежно контролировать положение поповера.Кажется, у iOS есть четкий контроль над тем, где она расположена
  3. Можно вручную сделать кадр меню переполнения равным кадру кнопки, но у меня возникают проблемы с надежным определением, когда изменяется рамка кнопки.КВО кажется лучшим методом, но это не гарантируется.
...