SlideShare a Scribd company logo
Нестандартные
интерфейсы
Разработка приложений для iOS
Лекция 9
Глеб Тарасов
gleb34@gmail.com
Вспомним прошлое
занятие
Как сохранить строку в файл?
Как сохранить строку в файл?
[str writeToFile:filePath
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];
Через что можно сохранять
небольшие данные, вроде
настроек?
Через что можно сохранять
небольшие данные, вроде
настроек?
через NSUserDefaults
Какие объекты нужно создать, чтобы
начать работу с Core Data
Какие объекты нужно создать, чтобы
начать работу с Core Data
NSManagedObjectModel,
NSPersistentStoreCoordinator,
NSManagedObjectContext
От какого объекта наследуются все
сущности, которые мы вычитываем
из Core Data?
От какого объекта наследуются все
сущности, которые мы вычитываем
из Core Data?
NSManagedObject
Как загрузить все объекты User из
Core Data?
Как загрузить все объекты User из
Core Data?
NSManagedObjectContext *context = ...;
NSFetchRequest *f = [NSFetchRequest fetchRequestWithEntityName:@"User"];
NSArray *users = [context executeFetchRequest:f error:nil];
Какая библиотека упрощает
работу с Core Data?
Какая библиотека упрощает
работу с Core Data?
MagicalRecord
Анимации
Свойства UIView, которые ,
можно анимировать:
• frame,
• transform,
• alpha,
• backgroundColor
Как анимировать?
[UIView animateWithDuration:1
animations:^{
// тут меняем свойства
}];
[UIView animateWithDuration:1
animations:^{
// тут меняем свойства
}
completion:^(BOOL finished) {
// это выполняется после анимации
}];
[UIView animateWithDuration:1
animations:^{
self.smallView.backgroundColor
= [UIColor greenColor];
}];
[UIView animateWithDuration:1
animations:^{
self.smallView.frame
= CGRectMake(50, 200, 100, 100);
}];
Цвет
Положение
Прозрачность
[UIView animateWithDuration:1
animations:^{
self.smallView.alpha = 0;
}];
[UIView animateWithDuration:1
animations:^{
self.smallView.alpha = 1;
}];
скрыть
показать
Последоваительные
анимации
[UIView animateWithDuration:1
animations:^{
self.smallView.transform
= CGAffineTransformMakeRotation(M_PI);
}
completion:^(BOOL finished) {
[UIView animateWithDuration:1 animations:^{
self.smallView.transform
= CGAffineTransformIdentity;
}];
}];
Изменение
интерфейса
Стиль навбара
UINavigationBar *bar = self.navigationController.navigationBar;
bar.barTintColor = [UIColor blueColor];
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Light"
size:19];
bar.titleTextAttributes = @{ NSForegroundColorAttributeName
: [UIColor whiteColor],
NSFontAttributeName
: font};
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Appearance
id appearance = [UINavigationBar appearance];
[appearance setBarTintColor:[UIColor blueColor]];
,
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Light"
size:19];
,
NSDictionary *attrs = @{ NSForegroundColorAttributeName
: [UIColor whiteColor],
NSFontAttributeName
: font};
[appearance setTitleTextAttributes:attrs];
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
id appearance = [UILabel appearance];
[appearance setTextColor:[UIColor redColor]];
return YES;
}
Стиль статус-бара
View controller-based status bar appearance = NO
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
application.statusBarStyle = UIStatusBarStyleLightContent;
return YES;
}
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
view.layer
self.smallView.layer.borderWidth = 3;
self.smallView.layer.borderColor
= [UIColor redColor].CGColor;
граница
круглые углы
self.smallView.layer.cornerRadius = 5;
тени
self.smallView.layer.shadowRadius = 5;
self.smallView.layer.shadowOpacity = 1;
self.smallView.layer.shadowOffset = CGSizeMake(2, 2);
UIWindow tintColor
Дизайн
Sketch app
http://www.bohemiancoding.com/sketch/beta/
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Работа с дизайнером
• макеты PSD	

• отдельные PNG с прозрачным фоном
Нестандартные
контролы
https://www.cocoacontrols.com
Домашнее задание
• украсить интерфейс
Всё!
Глеб Тарасов	

gleb34@gmail.com	

twitter.com/pilot34

More Related Content

PDF
Хранение данных в iPhone. (FMDB, SQL-Persistence, CoreData)
PPT
Работа с большими файлами под перлом‎
PDF
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
PDF
работа с сетью
PDF
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
PPTX
C++ для web с помощью Emscripten
PDF
Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
ODP
Константин Осипов (Mail.Ru)
Хранение данных в iPhone. (FMDB, SQL-Persistence, CoreData)
Работа с большими файлами под перлом‎
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
работа с сетью
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
C++ для web с помощью Emscripten
Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Константин Осипов (Mail.Ru)

What's hot (17)

PDF
хранение данных
PDF
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
PPT
Redis: возможности, выгоды, примеры использования
PDF
Обзор файловой системы GlusterFS
PDF
Презентация Neo4j на ADD-3
PDF
Дмитрий Новиков - Tarantool в Badoo
PPT
phpConf 2010 Классификация систем хранения
PDF
Механика DDoS (Александр Крижановский)
PPTX
PHP and MySQL
PPTX
05 db server_deployment_ru
PPTX
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
ODP
Кратко о MongoDB
PDF
10 ns error
PDF
pgconf.ru 2015 avito postgresql
PPTX
MongoDB в продакшен - миф или реальность?
PDF
Redis (Dump 2015)
PPT
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
хранение данных
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Redis: возможности, выгоды, примеры использования
Обзор файловой системы GlusterFS
Презентация Neo4j на ADD-3
Дмитрий Новиков - Tarantool в Badoo
phpConf 2010 Классификация систем хранения
Механика DDoS (Александр Крижановский)
PHP and MySQL
05 db server_deployment_ru
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Кратко о MongoDB
10 ns error
pgconf.ru 2015 avito postgresql
MongoDB в продакшен - миф или реальность?
Redis (Dump 2015)
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
Ad

Viewers also liked (15)

PDF
CS193P Lecture 5 View Animation
PDF
Роман Бусыгин "Yandex Map Kit для iOS в примерах"
PDF
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
PDF
Архитектура компилятора Swift
PDF
Преимущества и недостатки языка Swift
PDF
Rambler.iOS #6: App delegate - разделяй и властвуй
PDF
Denis Lebedev, Swift
PDF
Мобильный веб: назад в будущее
PDF
Технологии vs коммуникации: что важнее?
PPTX
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
PDF
Как автотесты ускоряют релизы в OK.ru
PPTX
TechLeads meetup: Евгений Потапов, ITSumma
PDF
TechLeads meetup: Макс Лапшин, Erlyvideo
PDF
TechLeads meetup: Алексей Рыбак, Badoo
PPTX
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
CS193P Lecture 5 View Animation
Роман Бусыгин "Yandex Map Kit для iOS в примерах"
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Архитектура компилятора Swift
Преимущества и недостатки языка Swift
Rambler.iOS #6: App delegate - разделяй и властвуй
Denis Lebedev, Swift
Мобильный веб: назад в будущее
Технологии vs коммуникации: что важнее?
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Как автотесты ускоряют релизы в OK.ru
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
Ad

Similar to Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс (20)

PDF
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
PDF
Active Record for CoreData
PDF
C# Web. Занятие 04.
PDF
msumobi2. Лекция 1
PDF
Школа-студия разработки для iOS. Лекция 4. Работа с данными
PDF
Squeek school #6
PDF
Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"
PDF
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
PDF
Влад Ковташ — Yap Database
PDF
Sphinx search
PDF
И снова разработка под iOS. Павел Тайкало
PDF
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
KEY
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
PPTX
Мастер класс по алгоритмам. Часть 1
PPTX
Введение в Microsoft Silverlight 3.0
PDF
Опыт применения активных объектов во встраиваемых системах. Архитектурные асп...
PPTX
FreeRTOS
PDF
Web осень 2013 лекция 6
PDF
Android: Как написать приложение, которое не тормозит
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Active Record for CoreData
C# Web. Занятие 04.
msumobi2. Лекция 1
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Squeek school #6
Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
Влад Ковташ — Yap Database
Sphinx search
И снова разработка под iOS. Павел Тайкало
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Мастер класс по алгоритмам. Часть 1
Введение в Microsoft Silverlight 3.0
Опыт применения активных объектов во встраиваемых системах. Архитектурные асп...
FreeRTOS
Web осень 2013 лекция 6
Android: Как написать приложение, которое не тормозит

More from Глеб Тарасов (20)

PDF
Gleb Tarasov. Portfolio
PDF
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
PDF
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
PDF
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
PDF
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
PDF
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
PDF
Интуит. Разработка приложений для iOS. Лекция 3. Views
PDF
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
PDF
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
PPT
Презентация проекта Ulect
PDF
Презентация для Foundation Institute
PDF
Делаем жизнь лучше с CocoaPods
PDF
msumobi2. Лекция 2
PDF
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
PDF
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
PDF
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
PDF
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
PDF
ShareKit. Evernote Dev Meetup
PDF
Глеб Тарасов. Портфолио
PDF
Курсы по мобильной разработке под iOS. 6 лекция. Инструменты
Gleb Tarasov. Portfolio
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Презентация проекта Ulect
Презентация для Foundation Institute
Делаем жизнь лучше с CocoaPods
msumobi2. Лекция 2
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
ShareKit. Evernote Dev Meetup
Глеб Тарасов. Портфолио
Курсы по мобильной разработке под iOS. 6 лекция. Инструменты

Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс