Добавлять listener в swift

Я не понимаю, кто тот, который звонит в методы, например,

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 1
    }

В java, чтобы соединять событие с Вашим listener tenes что, в объект, добавление одного, например, .addActionListener (класс, который управляет о событии). Но в swift, в iOS, я не понимаю, кто тот, который звонит в эти методы, и в котором команда (говоря tableViews).

В этом коде я хочу добавить событие к tableView, для того, чтобы, когда я стану scroll, работал код метода:

func scrollViewWillBeginDragging(scrollView: UIScrollView) {

    }

но мне не удается понять, как помещать, чтобы слушать tableview...

Código

2
задан 25.03.2016, 16:20
5 ответов

Твой класс осуществляет протоколы UITableViewDelegate и UITableViewDataSource, следовательно, - эти протоколы, которые берутся за то, чтобы призывать в необходимые методы инициализировать твой TableView.

Метод, что ты упоминаешь о tableView(_:numberOfRowsInSection:), принадлежит протоколу UITableViewDataSource, брось глаз в документацию этих протоколов. UITableViewDelegate и UITableViewDataSource .

, Если ты немного потерян всей этой темой подмостков, ты можешь бросать глаз в руководителя apple для начинать разрабатывать приложения в iOS .

Существует метод протокола UIScrollViewDelegate, который работает, когда tableView очень скоро начнет делать scrolling:

override func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    print("scroll")
}
0
ответ дан 24.11.2019, 14:41

Они ответили тебе заблаговременно очень правильной формы, но я буду объяснять тебе, что тема porqué ты должен реализовывать наследство класса UITableViewDelegate

Главный файл рисунка Уполномочь тебя это техника, в которой объект уполномочивает ответственность осуществления специфического поведения в объект, присоединенный к обратной связи ответственности.

Действительно, осуществив протокол UITableViewDelegate, ты показываешь, что твой ViewController - делегат этих методов, а следовательно UITableView уполномочит ответственность выполнения Вашего поведения в твой класс ViewController, функционируя способом, сходным с Listener, который ты показываешь. Методы будут названы, когда класс UITableView предупредите Ваших делегатов (в твоем случае, классе ViewController), что должны выполнять их (сходный - что не равный - в главный файл Обсервер)

Главный файл Делегате очень использован в Свифте и в Objective-C, из-за того, что я рекомендую тебе читать Вашу структуру, осуществление, поведение и usabilidad :)

Здесь у тебя есть рекомендуемый руководитель

2
ответ дан 24.11.2019, 14:41

Для того, чтобы эти методы были названы, ты должен показывать, кем будет делегат, который "услышит". Например, в классе, где имел ты UITableView ты должен делать это таким, который я схватил:

tableView.delegate = self

Таким образом, уже будут работать методы, которые названы из-за UITableView

0
ответ дан 24.11.2019, 14:41

Тебе остается добавлять таблицу в поле зрения, в viewWillAppear () например и добавлять то, что он говорит тебе mhergon с делегатом. В cuantro работал контролирующий таблица появится у тебя с Вашими 4 элементами. Драйвер, увидев, что у него есть таблица, и что он осуществляет протоколы, занят тем, что выполняет их. Если ты поместишь точки прерывания в метод числа секций и элементов из-за каждой секции, ты увидишь, что он называет их несколькими разами, нормально, чтобы он сделал то, что он хочет, пока они были хорошо осуществлены таблицу он появится.

override fun viewWillAppear(animated: Bool) {
   super.viewWillAppear(animated)
   self.view.addSubView(table1)
}
0
ответ дан 24.11.2019, 14:41

Ты должен говорить, кто делегат, можешь делать это двумя формами:

  1. Помещая в cГіdigo tableView.delegate = self и tableView.dataSource = self
  2. С storyboard, ты выбираешь таблицу, поддерживаешь нажатый botГіn ctrl и с левым click ratГіn ты тащишься до драйвера. Как я показываю тебя в нижнем изображении, ты тащишься с Табле Вьев до MuroVC и должен выбирать dataSource и уполномочь тебя. introducir la descripción de la imagen aquí
0
ответ дан 24.11.2019, 14:41