Используете UIPageControl на UIToolbar? - PullRequest
0 голосов
/ 13 июля 2020

Я не могу заставить UIPageControl вызывать его методы действия, когда он встроен в UIToolbar. Вот моя настройка:

У моего контроллера представления есть большая панель инструментов внизу, на которой есть две большие кнопки с обеих сторон, так что пользователю очень легко нажимать их. Я хочу использовать пространство между ними и поместить туда UIPageControl. Я использую scrollView для отображения пользовательских изображений по горизонтали, которые различаются по размеру, и хочу, чтобы пользователь знал, сколько точек используется в элементе управления разбиением на страницы.

Я использую конструктор интерфейсов и перетащил там в UIToolbar. Я могу установить, какая страница отображается, используя код в func scrollViewDidEndDecelerating(_ scrollView: UIScrollView), когда пользователь прокручивает представление, и это отлично работает. Что не работает, так это касание пользователем самого элемента управления страницей. Я реализовал это действие и связал его с событием изменения значения:

    @IBAction func pageChanged(_ sender: UIPageControl) {
        print("Page Changed to : \(sender.currentPage)")
    }

Я также попытался реализовать метод, который реагирует на внутреннее прикосновение. Ни того, ни другого не называют. Я попытался реализовать метод, который реагирует на действие в UIBarButtonItem, которое тоже не вызывается.

Когда я смотрю на иерархию представлений в IB, UIPagingControl находится внутри UIBarButtonItem, как и ожидалось. Я делал это раньше с UIView и UIButton внутри UIBarButton, и я могу без проблем фиксировать события для этих элементов.

Скриншот настройки раскадровки

Я не могу найти в Интернете ничего, что помогло бы мне понять, почему я не могу обнаружить взаимодействие пользователя с элементом управления разбиением на страницы. Если я перетащу элемент управления страницей на панель навигации, он будет работать нормально и будут вызваны мои методы действий.

Спасибо за любую помощь / руководство!

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