• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Squeek School #5
 

Squeek School #5

on

  • 4,474 views

 

Statistics

Views

Total Views
4,474
Views on SlideShare
1,282
Embed Views
3,192

Actions

Likes
1
Downloads
15
Comments
0

4 Embeds 3,192

http://school.squeek.ru 3175
http://iamdev.mobi 14
url_unknown 2
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Squeek School #5 Squeek School #5 Presentation Transcript

    • squeek school Разработка приложений для iOS Занятие #5понедельник, 16 мая 2011 г.
    • Табличное представление + скроллинг • UITableView • UIScrollView • делегатыпонедельник, 16 мая 2011 г.
    • Table View Styles TableView UITableViewStylePlain UITableViewStyleGroupedпонедельник, 16 мая 2011 г.
    • анатомия TableView Table View Anatomy Plain Style Table Header Section Header Table Cell Section Footer Section Table Footerпонедельник, 16 мая 2011 г.
    • анатомия TableView Table View Anatomy Grouped Style Table Header Section Header Table Cell Section Footer Section Table Footerпонедельник, 16 мая 2011 г.
    • использование TableView • использование делегатов, предоставляющих данные • просит то, что сейчас нужнопонедельник, 16 мая 2011 г.
    • UITableViewDataSource - (NSInteger)numberOfSectionsInTableView:(UITableView *)table; - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;понедельник, 16 мая 2011 г.
    • Datasource Message Flow numberOfSectionsInTableView: How many sections? DatasourceSaturday, January 30, 2010 41понедельник, 16 мая 2011 г.
    • Datasource Message Flow tableView:numberOfRowsInSection: How many rows in section 0? DatasourceSaturday, January 30, 2010 42понедельник, 16 мая 2011 г.
    • Datasource Message Flow tableView:cellForRowAtIndexPath: What to display at section 0, row 0? DatasourceSaturday, January 30, 2010 43 понедельник, 16 мая 2011 г.
    • NSIndexPath • массив int • секция + строка • [NSIndexPath indexPathForRow:(NSUInteger)row inSection: (NSUInteger)section];- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = ...; cell.textLabel.text = [myStrings objectAtIndex:indexPath.row] return [cell autorelease];}понедельник, 16 мая 2011 г.
    • reuse - чтобы быстрее - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@“MyIdentifier”]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:... reuseIdentifier:@“MyIdenifier”] autorelease]; } cell.text = [myStrings objectAtIndex:indexPath.row] return cell; } identifier - любойпонедельник, 16 мая 2011 г.
    • Cell Styles initWithStyle - UITableViewCellStyle UITableViewCellStyleDefault UITableViewCellStyleSubtitle UITableViewCellStyleValue1 UITableViewCellStyleValue2понедельник, 16 мая 2011 г.
    • Basic properties • UITableViewCell has an image view and one or two text labels cell.imageView.image = [UIImage imageNamed:@“vitolidol.png”]; cell.textLabel.text = @“Vitol Idol”; cell.detailTextLabel.text = @“Billy Idol”;понедельник, 16 мая 2011 г.
    • Accessory Types // UITableView delegate method - (UITableViewCellAccessoryType)tableView:(UITableView *)table accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath; UITableViewCellAccessoryDisclosureIndicator UITableViewCellAccessoryDetailDisclosureButton UITableViewCellAccessoryCheckmark - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { // Only for the blue disclosure button NSUInteger row = indexPath.row; ... }понедельник, 16 мая 2011 г.
    • перезагрузить - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.tableView reloadData]; }понедельник, 16 мая 2011 г.
    • добавление по ходу - (void)insertSections:(NSIndexSet *)sections withRowAnimation: (UITableViewRowAnimation)animation; - (void)deleteSections:(NSIndexSet *)sections withRowAnimation: (UITableViewRowAnimation)animation; - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation)animation; - (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation)animation;понедельник, 16 мая 2011 г.
    • UITableViewDelegate • поведение + внешний вид • логика отдельно от данных!понедельник, 16 мая 2011 г.
    • выбор строки - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath;понедельник, 16 мая 2011 г.
    • обычно... - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = indexPath.row id objectToDisplay = [myObjects objectAtIndex:row]; MyViewController *myViewController = ...; myViewController.object = objectToDisplay; [self.navigationController pushViewController:myViewController animated:YES]; }понедельник, 16 мая 2011 г.
    • UITableViewController = UITableView + делегатыпонедельник, 16 мая 2011 г.
    • UIScrollView Scrolling Examplesпонедельник, 16 мая 2011 г.
    • Content Size контент contentSize.width contentSize.heightпонедельник, 16 мая 2011 г.
    • Content Inset contentInset.top contentInset.bottomпонедельник, 16 мая 2011 г.
    • Content Inset contentSize.width contentInset.top contentSize.height contentInset.bottomпонедельник, 16 мая 2011 г.
    • начало скролла Scroll Indicator Insets scrollIndicatorInsets.topпонедельник, 16 мая 2011 г.
    • Content Offsetпонедельник, 16 мая 2011 г.
    • contentOffset.x contentOffset.yпонедельник, 16 мая 2011 г.
    • contentSize.width contentInset.top contentSize.height contentInset.bottom contentInset.left contentInset.rightSaturday, January 30, 2010 16 понедельник, 16 мая 2011 г.
    • как использовать? CGRect frame = CGRectMake(0, 0, 200, 200); UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame]; frame = CGRectMake(0, 0, 500, 500); UIImage *image = [UIImage imageNamed:@"tree.jpg"]; UIImageView *myImageView = [[UIImageView alloc] initWithImage:image]; myImageView.frame = frame; [scrollView addSubview:myImageView]; scrollView.contentSize = CGSizeMake(500, 500); [self.view addSubview:scrollView];понедельник, 16 мая 2011 г.
    • Делегат UIScrollViewDelegate @protocol UIScrollViewDelegate<NSObject> @optional - (void)scrollViewDidScroll:(UIScrollView *)scrollView; ... - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView; @endпонедельник, 16 мая 2011 г.
    • Масштабирование scrollView.maximumZoomScale = 2.0; scrollView.minimumZoomScale = scrollView.frame.size.width / myImage.frame.size.width; и реализовать метод делегата: - (UIView *)viewForZoomingInScrollView:(UIScrollView *)view { return someViewThatWillBeScaled; }понедельник, 16 мая 2011 г.
    • Zoom to Rect - (void)setZoomScale:(float)scale animated:(BOOL); - (void)zoomToRect:(CGRect)rect animated:(BOOL);urday, January 30, 2010 26day, January мая 2011 г. понедельник, 16 30, 2010