Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СЕССИЯ ОТВЕТЫ / iOS сессия ответы.docx
Скачиваний:
21
Добавлен:
25.12.2020
Размер:
14.45 Mб
Скачать
  1. Понятие делегата и протокола на примере работы с таблицами. Назначение и принцип работы. (Table delegates and protocols)

(Курсера)

Все, что вам нужно сделать, чтобы избавиться от этих строк, - это щелкнуть сам TableView, CategoryTable, щелкнуть инспектор атрибутов и посмотреть разделитель, как он говорит default, и изменить его на none. Тогда давайте запустим его еще раз и посмотрим, как он выглядит.

Замечательно, это похоже на изображение здесь, но не очень много кода. Я думаю, что наш текст похож на Черноватый, может быть, темно-серый, но мне все равно. Я не собираюсь говорить ДИЗАЙНЕРУ, Если ты этого не сделаешь, кого это волнует? Хотя это выглядит неплохо. Итак, что мы сделали здесь, так это установили изображения динамически, как если бы мы получили их с сервера. Мы также установим названия этих ячеек там динамически, как если бы мы получили их с какого-то сервера, и мы повторно заполняем данные, а затем, когда гипотетически, когда рубашки, одежда и прочее, продукты будут меняться онлайн, они будут меняться здесь автоматически, что действительно здорово. Так что это выглядит неплохо. И еще одно: давайте избавимся от этих уродливых скроллингов. Итак, давайте щелкнем здесь, TableView здесь и перейдем к нашей прокрутке, и давайте снимем индикаторы прокрутки, они называются индикаторами прокрутки. Я не помню названия, потому что они такие уродливые, что я не хочу о них думать. Снимите оба, и это хорошо. Нам здесь хорошо. Так что мы будем называть это видео законченным, мы уже многое сделали. Мы создали пользовательскую ячейку TableView, мы анализируем в нее данные,мы реализовали функции делегирования. Здесь здорово. Мы внедрили функции делегирования. Поэтому помните, что вы реализуете протокол, а затем он вызывает функцию делегата. Итак, у протокола есть делегат или что-то, что представляет протокол, вы узнаете об этом подробнее. Затем делегат действует от его имени. В нашем случае делегатом был CategoriesVC. Поэтому мы реализовали cellForRowAt indexPath, который в основном DQs ячейки, а затем делает ее многоразовой, а затем вы обновляете данные в ней. Мы установили идентификатор на нем здесь и в раскадровке, и мы установили, сколько строк мы хотим показать в целом, мы установили делегат и источник данных здесь tableView, и мы подключились к выходам IB, и мы тоже сделали некоторую отладку, когда Xcode просто облил всю нашу замечательную работу, мы точно знали, как это исправить. Так что здесь много хорошего. Возможно, вам придется смотреть это снова и снова, но когда я профессионально программирую в iOS-разработке и в приложении DevOps, не проходит и дня, чтобы кто-то из нашей команды не работал с TableViews и не делал именно этот тип кода. Так что пока все, и давайте поднимемся на борт.

Протокол(Қосымша мәлімет)

Протокол - это список методов, которые определяют "контракт" или "интерфейс". Давайте добавим следующие строки в код для наглядности:

protocol Speaker {

func Speak()

}

Этот протокол объявляет единственный метод Speak.

Любой класс, который соответствует этому протоколу, должен имплементировать этот метод. Давайте попробуем это сделать, добавив два класса, которые соответствуют протоколу Speaker:

class Vicki: Speaker {

func Speak() {

println("Hello, I am Vicki!")

}

}

class Ray: Speaker {

func Speak() {

println("Yo, I am Ray!")

}

}

Для того, чтобы класс соответствовал протоколу, вы должны поставить двоеточие после его имени, далее, перечислить все протоколы (после имени класса - все то, от чего наследует класс, если таковое есть). Такие классы не наследуют от других классов, так что просто можете перечислить протоколы напрямую.

И кстати, если вы не включите функцию Speak, то вы получите ошибку компиляции.

Теперь, давайте попробуем то же самое, только добавим еще наследование от другого класса:

class Animal {

}

class Dog : Animal, Speaker {

func Speak() {

println("Woof!")

}

}

В этом примере, Dog наследует от Animal, так что когда вы объявляете Dog, вы должны поставить двоеточие, после чего идет имя класса от которого наследуют, а затем список протоколов. Вы можете наследовать только от одного класса в Swift, но вы можете соответствовать любому числу протоколов.

Соседние файлы в папке СЕССИЯ ОТВЕТЫ