#UIKit
UIKit е най-често използваната библиотека при разработването на iOS приложения.Чрез нея може да се построи и управлява графичния интерфейс на приложението,който е базиран на събития,които могат да бъдат предизвикани от потребителя,нотификации,операционната система и др.Тя съдържа основните компоненти на приложението като визуални елементи.Текстови визуализации, бутони,таблици,колекции,системни навигации и други.
Както Foundation библиотеката дефинира класове,протоколи и функции за различните платформи,така UIKit дефинира визуалните компоненти и основи за едно приложение. UIKit също дефинира класове,протоколи,функции,типове данни и константи.Тя добавя и допълнителен слой към Foundation класовете.
UIKit предоставя необходимата инфраструктура за приложенията.Визуалните компоненти,обработването на събитията свързани с действия изпълнени по екрана и постоянния цикъл,който се грижи за връзките между потребителя, операционната система и приложението.
Библиотеката също така поддържа обработката на анимации,документи,рисуване и принтиране,съдържа информация за текущото устройство,управлението на текстове и визуализацията им,управление на ресурсите и др.
Изключително важно е модификациите на интерфейса на приложението да се изпълняват само върху главната нишка на приложението. Вижте защо и как.
Всеки клас,който принадлежи към библиотеката започва с префикса UI. Cocoa Touch и UIKit стъпват основно на MVC(Model View Controller) шаблона,който е един от разпространените шаблони в обектно ориентираното програмиране. В MVC, модела (Model) е под контрол на бизнес логиката на приложението,негова отговорност е комуникацията с базата данни например. Възуалния слой (View) визуализира данните представени от модела на потребителя и също така управлява потребителския интерфейс и обработва действията на потребителя. Контролера е връзката между визуалния слой и модела. Докато визуалния слой и модела обикновено не си комуникират помежду си, контролера комуникира и с двата. Поради тази причина, визуалния слой (UIKit) е лесно преизползваем,т.к. не е зависим от модела и от контролера.
UIApplication - При стартирането на едно iOS приложениe се създава една единствена инстанция от този клас(singleton) и остава единствена докато приложението е в паметта. Инстанцията на този клас е началната точка за всички действия на потребителя и тя изпраща събитията към съответните обекти, които са регистрирани да следят за конкретно събитие. UIApplication има обект делегат в приложението, който се създава заедно със създаването на iOS проекта и той се нарича AppDelegate.
UIKit дефинира UIView класа, който обикновено е отговорен за визуализирането на съдържанието върху екрана. UIApplication управлява main event loop на приложението и жизнените му функции по време на изпълнението му.
##Структура на приложението UIKit управлява връзката на приложението със системата и предоставя класове с които да управлявате данните и ресурсите му.
##Потребителски интерфейс View обектите Ви помагат да визуализирате съдържанието на екрана и улесняват действията на потребителя. View Controller-ите Ви помагат да управлявате View-тата и структурата на интерфейса.
###View ####1.Свойства на View-то
1.Изобразяване и подсписъка от наследници
- Дефинира размера си спрямо View родителя си.
- Управлява списъка от View децата си.
- Може да променя позицията и размера на децата си.
- Може да конвертира точки от координатната си система към такава на други View обекти или на главния екран.
2.Рисуване и анимации
- Рисува съдържанието си в правоъгълната си форма.
- Някой свойства на View-то могат да бъдат анимирани.
3.Обработка на събития
- Може да приема натисканията по екрана от потребителя.
- Може да участва в responder chain.
####3.Елементи
- alpha, hidden, opaque
- bounds, frame, center, transform
- autoresizingMask, autoresizesSubviews
- contentMode, contentStretch, contentScaleFactor
- gestureRecognizers, userInteractionEnabled, multipleTouchEnabled, exclusiveTouch
- backgroundColor, subviews, drawRect: method, layer, (layerClass method)
##User Interactions Responders (UIResponder) и Gesture Recognizers Ви помагат да обработвате докосвания,жестове,клавиатурни входове и други събития. Можете да използвате Drag and Drop,Peek and pop и accessibility за да обработите други типове действия на потребителя.
##Графика,рисуване и принтиране UIKit предоставя класове и протоколи,с които да конфигурирате средата на чертане и да визуализирате съдържанието си.
##Текст В допълнение към текстовите View обекти, които улесняват визуализацията на текст в приложението Ви,UIKit предоставя възможност за модифициране на текста и визуализацията му.
##Референции и полезни връзки