Your SlideShare is downloading. ×
Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Курсы по мобильной разработке. 2 лекция. Построение интерфейсов в iOS

1,496
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,496
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Разработка под iOS Лекция 2Построение интерфейсов Views, controllers Глеб Тарасов
  • 2. Вспомним прошлое занятие
  • 3. Что значит минус передопределением метода? - (void)deleteProfile;
  • 4. Что значит минус передопределением метода? - (void)deleteProfile; Экземплярный метод
  • 5. Из чего состоит свойство? @property(nonatomic) NSInteger age;
  • 6. Из чего состоит свойство? @property(nonatomic) NSInteger age;getter, setter, внутренняя переменная
  • 7. Как создать объект? User *user = ...
  • 8. Как создать объект? User *user = ...User *user = [[User alloc] init];
  • 9. Какой базовый класс для всех объектов в Objective-C?
  • 10. Какой базовый класс для всех объектов в Objective-C? NSObject
  • 11. Как вызвать метод у объекта user с параметрами «topic», «text»- (void)postCommentWithTopic:(NSString *)topic andText:(NSString *)text;
  • 12. Как вызвать метод у объекта user с параметрами «topic», «text»- (void)postCommentWithTopic:(NSString *)topic andText:(NSString *)text;[user postCommentWithTopic:@"topic" andText:@"text"];
  • 13. View
  • 14. UIView@property(nonatomic) CGRect frame;@property(nonatomic) CGRect bounds;@property(nonatomic) CGPoint center;@property(nonatomic,readonly) UIView *superview;@property(nonatomic,readonly,copy) NSArray *subviews;- (void)removeFromSuperview;- (void)addSubview:(UIView *)view;- (void)bringSubviewToFront:(UIView *)view;- (void)sendSubviewToBack:(UIView *)view;@property(nonatomic,copy) UIColor *backgroundColor;@property(nonatomic) CGFloat alpha;@property(nonatomic,getter=isHidden) BOOL hidden;
  • 15. Иерархия UIView
  • 16. Стандартные контролы
  • 17. Controller
  • 18. UIViewController// The getter first invokes [self loadView] if the view hasnt been set yet.// Subclasses must call super if they override the setter or getter.@property(nonatomic,retain) UIView *view;// This is where subclasses should create their custom view hierarchy// if they arent using a nib.// Should never be called directly.- (void)loadView;- (void)viewWillUnload __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);// Called after the view has been loaded. For view controllers created in code,// this is after -loadView. For view controllers unarchived from a nib,// this is after the view is set.- (void)viewDidLoad;// Called after the view controllers view is released and set to nil.// For example, a memory warning which causes the view to be purged.// Not invoked as a result of -dealloc.- (void)viewDidUnload __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
  • 19. Interface Builder (демонстрация)
  • 20. События
  • 21. target, action- (void)viewDidLoad{ [super viewDidLoad]; [self.button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];}- (void)buttonClicked{ NSLog(@"buttonClicked");}
  • 22. delegate@interface ViewController : UIViewController<UITableViewDelegate>- (void)viewDidLoad{ [super viewDidLoad]; self.tableView.delegate = self;}- (void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"select row");}
  • 23. Отрывок UIScrollViewDelegate@protocol UIScrollViewDelegate<NSObject>@optional// any offset changes- (void)scrollViewDidScroll:(UIScrollView *)scrollView;// any zoom scale changes- (void)scrollViewDidZoom:(UIScrollView *)scrollView__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_2);// called on start of dragging// (may require some time and or distance to move)- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;...
  • 24. notificationsСобытие случилось:NSNotificationCenter *center = [NSNotificationCenter defaultCenter];[center postNotificationName:@"UserChanged" object:nil];Ловим событие:NSNotificationCenter *center = [NSNotificationCenter defaultCenter];[center addObserver:self selector:@selector(userChanged) name:@"UserChanged" object:nil];- (void)userChanged{ NSLog(@"Событие произошло");}
  • 25. MVC ControllerView Model
  • 26. MVC Controller outletsView Model
  • 27. MVC Controller outletsView Model
  • 28. MVC Controller delegates outletsView Model
  • 29. MVC Controller delegatestarget,action outletsView Model
  • 30. MVC Controller delegatestarget,action outletsView Model
  • 31. MVC Controller delegatestarget,action notifications outletsView Model
  • 32. Демонстрация• UIView• UIViewController• UIButton• UILabel• UIImageView
  • 33. Что мы сегодня узнали?
  • 34. Какой класс базовый для всех интерфейсных элементов?
  • 35. Какой класс базовый для всех интерфейсных элементов? UIView
  • 36. Какой класс базовый для всех контроллеров?
  • 37. Какой класс базовый для всех контроллеров? UIViewController
  • 38. Как контроллер получаетссылку на view в Interface Builder?
  • 39. Как контроллер получаетссылку на view в Interface Builder? через IBOutlet
  • 40. Как контроллер узнает об изменениях в модели?
  • 41. Как контроллер узнает об изменениях в модели? через notification-ы
  • 42. Как view сообщаетконтроллеру о действиях пользователя?
  • 43. Как view сообщает контроллеру о действиях пользователя?через target/action и delegate
  • 44. Темы для подготовкиНаписать приложение- демонстрацию UIWebView (например, простой браузер: адресная строка, кнопки назад/вперед)
  • 45. Темы для подготовки Написать приложение-демонстрацию UIScrollView(например, прокрутканескольких картинок с пагинацией и без)
  • 46. Темы для подготовкиНаписать приложение- демонстрацию MKMapView (например, карта с корпусами МГУ)
  • 47. Темы для подготовкиНаписать приложение- демонстрациюUITableView(например, вывести список строк из файла в таблицу)