Уроци по програмиране на iOS Създаване на просто приложение за изглед на таблица - SJ
Не би ли било чудесно да създадете програма Hello World? В този урок ще направим нещо по-интересно и ще създадем просто приложение, базирано на табличния изглед.
Какво е изглед на таблица в iOS? Това е един от най-популярните елементи, който се използва в напълно различни приложения. Табличен изглед се използва за показване на списък с известно количество информация.
Най-добрият случай за използване на Table View е вграденото приложение Phone на iPhone. Списъкът с вашите контакти се показва с помощта на табличен изглед. Друг пример е вграденият имейл клиент, който също използва табличен изглед за показване на списък с имейли. Струва си да добавим, че с него можете да показвате не само текстова информация, но и различни изображения. Приложението Videos на вашия iPhone демонстрира това перфектно.
Създаване на проект С намерението да създадем нещо интересно, ще си изцапаме ръцете и ще създадем Simple App.Както казах във въвеждащия урок, отидете на xCode и изберете SingleView Application. Попълваме полетата с информация за бъдещото приложение, както показах и докоснете, за да продължите.
Изберете всяка удобна директория и създайте проект!
Добавяне и персонализиране на TableView
Така че първото нещо, което трябва да направим, е да добавим TableView към нашето приложение. За да направите това, изберете MainStoryboard.storyboard и влезте в създателя на интерфейса.
В библиотеката с обекти в инспектора изберете табличния изглед и го плъзнете върху нашия все още празен екран. И след това всичко трябва да изглежда така:
Страхотен. Сега можете да опитате да управлявате този позор. За да направите това, докоснете смело Run и изчакайте стартирането на симулатора, който вече ще има нещо подобно. Чинията е достаМожете да превъртите наоколо и да видите как работи всичко. Но в момента не съдържа никаква информация :( Съвсем скоро ще го поправим!
Добавяне на информация към таблицата
Нека се върнем към Project Navigator и изберем файла ViewController.h. Сега трябва да добавим нещо точно след "думата" UIViewController. А именно: И вашият код сега трябва да изглежда нещо подобно:
UITableViewDelegate и UITableViewDataSource са известни като протоколи в ObjectiveC. В случай, че искаме да покажем TableView, имаме нужда от клас, който да съдържа необходимите за това методи. Протоколите ви позволяват да кажете на xCode, че такива методи наистина присъстват в класа ViewController. Беше лесно. Но измамата на xCode не е добра. Така че ние също трябва да създадем необходимите методи, а не просто да докладваме за тяхното съществуване.
И така, нека изберем файла ViewController.m и декларираме променлива (обект от тип NSArray - неизменен масив), за да съхраним информацията от клетките на нашата таблица.
В метода viewDidLoad нека добавим следния код, за да инициализираме нашата tableData с определено количество информация вътре.
Какво е NSArray? Масивът е основна структура за съхранение на информация, която се среща в повечето езици за програмиране. Можете да мислите за масива като списък от информационни елементи. В случая на tableData, който декларирахме по-горе, списъкът е определен брой текстови обекти от тип NSString. Графично структурата на масива може да бъде представена по следния начин:
Всеки елемент от масив има и може да бъде достъпен на конкретен индекс. Масив от 10 елемента ще ги съхранява при индекси от 0 до 9. Това означава, че tableData[0] ще ни върне първия елемент от масива tableData. В Objective C NSArray е клас засъздаване и управление на масив. Можете да използвате NSArray за създаване на неизменни масиви с фиксиран размер. Ако имате нужда от променлив масив, тогава има NSMutableArray за тази цел. (Променлив - променлив). NSArray ни предлага редица методи за създаване на масивен обект. В нашия код използваме един от тях - arrayWithObjects: за създаване на екземпляр на класа NSArray и предварително зареждане с редица необходими елементи. Можете да използвате други вградени методи за манипулиране на NSArray обект. По-долу ще използваме метода count, за да получим броя на елементите, съдържащи се в масива. За да научите повече за NSArray, винаги можете да се обърнете към документацията на Apple или да гледате предавания на Sopcast от разработчиците.
И още един необходим метод:
Методът "tableView:cellForRowAtIndexPath" се извиква всеки път, когато се показва клетка от таблица. Илюстрацията по-долу ясно демонстрира как си взаимодействат UITableView и UITableViewDataSource
Така. Сега докоснете бутона Run и стартирайте нашето приложение. Ако сте направили всичко правилно, тогава нищо не трябва да се променя от предишното стартиране на симулатора. Все още празен екран. Защо? В крайна сметка вече сме създали методи за взаимодействие между масив с ресурси и нашия TableView? Има още нещо, което трябва да направим.
Свързване на DataSource и Delegate. Сега трябва да установим връзка между методите, които създадохме, и TableView. Нека се върнем към Interface Builder, като изберем файла MainStoryboard.storyboard. Задръжте десния бутон на мишката върху нашия UITableView и плъзнете до реда с името на класа ViewController, както е показано по-долу. Ще се появи малък прозорец, който ще ви подкани да свържете един от методите към TableView. Направи гоза всеки!
ПЕЧАЛБА, господа. За да сме сигурни, че сме направили всичко правилно, нека изберем нашия tableView и в инспектора да отидем в раздела за връзки (инспектор на връзки) (кожата по-долу). Тук си струва да обърнете внимание на факта, че полетата dataSource и делегат са свързани с ViewController. Това означава, че всичко е много добре. Време е за тест? Ако всичко е направено правилно, приложението трябва да работи адекватно!
Добавяне на миниатюри към TableView.
Сега нашият TableView е твърде прост, нали? Как ви харесва идеята за добавяне на изображения там? xCode прави това изключително лесно. Трябва да напишете само един ред, за да добавите миниатюра към клетките. Първо, изтеглете примерните миниатюри, ако не разполагате с вашите. Сега трябва да го добавим, за да направим това, щракнете с десния бутон върху основната папка на проекта и "Добавете файл към "".
Във Finder, който се показва, изберете желаното изображение и поставете отметка в квадратчето „Копиране на елементи в папката на целевата група“. По-нататък "Добре". Сега нека направим някои промени в метода "tableView:cellForRowAtIndexPath". След
като вземете textLabel, трябва да добавите и изображение. Следващият ред създава обект от класа UIImage за съхраняване на изображения и го изпраща в клетката.
Опитваме ли да стартираме? Ако сте направили всичко правилно, тогава симулаторът ще има нещо подобно: