Я не понимаю, кто тот, который звонит в методы, например,
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
В java, чтобы соединять событие с Вашим listener tenes что, в объект, добавление одного, например, .addActionListener (класс, который управляет о событии). Но в swift, в iOS, я не понимаю, кто тот, который звонит в эти методы, и в котором команда (говоря tableViews).
В этом коде я хочу добавить событие к tableView, для того, чтобы, когда я стану scroll, работал код метода:
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
}
но мне не удается понять, как помещать, чтобы слушать tableview...
Твой класс осуществляет протоколы UITableViewDelegate
и UITableViewDataSource
, следовательно, - эти протоколы, которые берутся за то, чтобы призывать в необходимые методы инициализировать твой TableView.
Метод, что ты упоминаешь о tableView(_:numberOfRowsInSection:)
, принадлежит протоколу UITableViewDataSource
, брось глаз в документацию этих протоколов. UITableViewDelegate и UITableViewDataSource .
, Если ты немного потерян всей этой темой подмостков, ты можешь бросать глаз в руководителя apple для начинать разрабатывать приложения в iOS .
Существует метод протокола UIScrollViewDelegate
, который работает, когда tableView очень скоро начнет делать scrolling:
override func scrollViewWillBeginDragging(scrollView: UIScrollView) {
print("scroll")
}
Они ответили тебе заблаговременно очень правильной формы, но я буду объяснять тебе, что тема porqué ты должен реализовывать наследство класса UITableViewDelegate
Главный файл рисунка Уполномочь тебя это техника, в которой объект уполномочивает ответственность осуществления специфического поведения в объект, присоединенный к обратной связи ответственности.
Действительно, осуществив протокол UITableViewDelegate
, ты показываешь, что твой ViewController - делегат этих методов, а следовательно UITableView уполномочит ответственность выполнения Вашего поведения в твой класс ViewController, функционируя способом, сходным с Listener, который ты показываешь. Методы будут названы, когда класс UITableView
предупредите Ваших делегатов (в твоем случае, классе ViewController), что должны выполнять их (сходный - что не равный - в главный файл Обсервер)
Главный файл Делегате очень использован в Свифте и в Objective-C, из-за того, что я рекомендую тебе читать Вашу структуру, осуществление, поведение и usabilidad :)
Для того, чтобы эти методы были названы, ты должен показывать, кем будет делегат, который "услышит". Например, в классе, где имел ты UITableView
ты должен делать это таким, который я схватил:
tableView.delegate = self
Таким образом, уже будут работать методы, которые названы из-за UITableView
Тебе остается добавлять таблицу в поле зрения, в viewWillAppear () например и добавлять то, что он говорит тебе mhergon с делегатом. В cuantro работал контролирующий таблица появится у тебя с Вашими 4 элементами. Драйвер, увидев, что у него есть таблица, и что он осуществляет протоколы, занят тем, что выполняет их. Если ты поместишь точки прерывания в метод числа секций и элементов из-за каждой секции, ты увидишь, что он называет их несколькими разами, нормально, чтобы он сделал то, что он хочет, пока они были хорошо осуществлены таблицу он появится.
override fun viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.view.addSubView(table1)
}
Ты должен говорить, кто делегат, можешь делать это двумя формами:
tableView.delegate = self
и tableView.dataSource = self