zoukankan      html  css  js  c++  java
  • IOS7笔记-11、表格视图和iPad

    1、表格视图设置

      1)storyboard中需要新建TableViewController

      2)实现DataSource委托相关

     1 #pragma mark - Table view data source
     2 
     3 
     4 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
     5 {
     6     // Return the number of rows in the section.
     7     return [self.photos count];
     8 }
     9 
    10 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    11 {
    12     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Flickr Photo Cell" forIndexPath:indexPath];
    13     
    14     NSDictionary *photo = self.photos[indexPath.row];
    15     cell.textLabel.text = [photo valueForKeyPath:FLICKR_PHOTO_TITLE];
    16     cell.detailTextLabel.text = [photo valueForKeyPath:FLICKR_PHOTO_DESCRIPTION];
    17     
    18     return cell;
    19 }

      3)选中master记录更新detail

     1 #pragma mark - UITableViewDelegate
     2 
     3 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
     4 {
     5     id detail = self.splitViewController.viewControllers[1];
     6     if ([detail isKindOfClass:[UINavigationController class]]) {
     7         detail = [((UINavigationController *)detail).viewControllers firstObject];
     8         if ([detail isKindOfClass:[ImageViewController class]]) {
     9             [self prepareImageViewController:detail toDisplayPhoto:self.photos[indexPath.row]];
    10         }
    11     }    
    12 }

      4)Segue

     1 #pragma mark - Navigation
     2 
     3 -(void)prepareImageViewController:(ImageViewController *)ivc toDisplayPhoto:(NSDictionary *)photo
     4 {
     5     ivc.imageURL = [FlickrFetcher URLforPhoto:photo format:FlickrPhotoFormatLarge];
     6     ivc.title = [photo valueForKeyPath:FLICKR_PHOTO_TITLE];
     7 }
     8 
     9 // In a storyboard-based application, you will often want to do a little preparation before navigation
    10 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    11 {
    12     // Get the new view controller using [segue destinationViewController].
    13     // Pass the selected object to the new view controller.
    14     if ([sender isKindOfClass:[UITableViewCell class]]) {
    15         NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
    16         if (indexPath) {
    17             if ([segue.identifier isEqualToString:@"Display Photo"]) {
    18                 if ([segue.destinationViewController isKindOfClass:[ImageViewController class]]) {
    19                     [self prepareImageViewController:segue.destinationViewController toDisplayPhoto:self.photos[indexPath.row]];
    20                 }
    21             }
    22         }
    23     }
    24 }

      5)更新图片时ScrollView中需要同步刷新至初始状态,若上一幅进行了缩放或移位,需要恢复

    - (void)setImage:(UIImage *)image
    {
        self.scrollView.zoomScale = 1.0;
        self.imageView.image = image; // does not change the frame of the UIImageView
        //[self.imageView sizeToFit];   // update the frame of the UIImageView
        self.imageView.frame = CGRectMake(0, 0, self.image.size.width, self.image.size.height);
        // self.scrollView could be nil on the next line if outlet-setting has not happened yet
        self.scrollView.contentSize = self.image ? self.image.size : CGSizeZero;
    
        [self.spinner stopAnimating];
    }

    2、多线程另一种方式

     1 -(IBAction )fetchPhotos
     2 {
     3     [self.refreshControl beginRefreshing];
     4     NSURL *url = [FlickrFetcher URLforRecentGeoreferencedPhotos];
     5     dispatch_queue_t fetchQ = dispatch_queue_create("flickr fetcher", NULL);
     6     dispatch_async(fetchQ, ^{
     7         NSData *results = [NSData dataWithContentsOfURL:url];
     8         NSDictionary *propertyListResults = [NSJSONSerialization JSONObjectWithData:results options:NSJSONReadingMutableContainers error:NULL];
     9         
    10         NSLog(@"Flickr Results = %@",propertyListResults);
    11         
    12         NSArray *photos =[propertyListResults valueForKeyPath:FLICKR_RESULTS_PHOTOS];
    13         dispatch_async(dispatch_get_main_queue(), ^{
    14             [self.refreshControl endRefreshing];
    15             self.photos = photos;
    16         });
    17     });
    18     
    19 }
  • 相关阅读:
    zbb20181207 springboot @ConfigurationProperties使用
    zbb20181206 logback,lombok 默认日志logback配置解析
    Spring Boot (8) 全局异常处理
    Spring Boot (7) JdbcTemplate访问数据库
    Spring Boot (6) Spring Data JPA
    Spring Boot (4) 静态页面和Thymeleaf模板
    Spring Boot (3) 热部署devtools
    Spring Boot (2) Restful风格接口
    Spring Boot (1) 构建第一个Spring Boot工程
    idea使用maven搭建ssm框架实现登陆商品增删改查
  • 原文地址:https://www.cnblogs.com/jonathan236/p/5577449.html
Copyright © 2011-2022 走看看