• IOS-UITableView入门(2)


    1.对于TableView 。每一个item的视图基本都是一样的。

    不同的仅仅有数据。

    IOS提供了一种缓存视图跟数据的方法。在 -UITableViewCell *) tableView:cellForRowAtIndexPath:

    //创建一个用于缓存的标示
        static NSString *ID=@"CellTable";
        //先从缓存中取得UITableViewCell
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
        //假设取不到,则代码创建。
        if (cell==nil) {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
        }

    2

    //创建系统提供的每一个item右边的图标
            cell.accessoryType=UITableViewCellAccessoryCheckmark;

    3.通过动画改动某个item的显示

    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

    4.通过动画删除某个item

    [self.tableView deleteRowsAtIndexPaths:self.indexPaths withRowAnimation:UITableViewRowAnimationLeft];

    CSZViewController.h 总体代码例如以下:声明TableView的协议和数据源

    #import <UIKit/UIKit.h>
    
    @interface CSZViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>
    
    @property (weak, nonatomic) IBOutlet UITableView *tableView;
    
    - (IBAction)trashClick:(id)sender;
    
    @end

    CSZViewController.m 有关TableView代码例如以下:

    #pragma mark - dataSource
    #pragma mark 每列行数
    - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return self.array.count;
    }
    
    #pragma mark 创建每行的View
    - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //创建一个用于缓存的标示
        static NSString *ID=@"CellTable";
        //先从缓存中取得UITableViewCell
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
        //假设取不到,则代码创建。
        if (cell==nil) {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
        }
        cell.textLabel.text=self.array[indexPath.row];
        cell.detailTextLabel.text=@"description....";
        
        if ([self.deleteArr containsObject:cell.textLabel.text]) {
            //创建系统提供的每一个item右边的图标
            cell.accessoryType=UITableViewCellAccessoryCheckmark;
        }else
        {
            cell.accessoryType=UITableViewCellAccessoryNone;
        }
        
        return  cell;
        
    }
    
    #pragma mark - UITableViewDelegate
    #pragma mark 点击每一个item调用
    - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
        
        if ([self.deleteArr containsObject:self.array[indexPath.row]]) {
            [self.deleteArr removeObject:self.array[indexPath.row]];
            [self.indexPaths removeObject:indexPath];
        }else
        {
            [self.deleteArr addObject:self.array[indexPath.row]];
            [self.indexPaths addObject:indexPath];
        }
        [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    }
    
    #pragma mark 返回每行高度
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return 70;
    }





  • 相关阅读:
    opencv图片压缩视频并读取
    python常见模块统计
    MySQL索引及优化
    web开发框架之 Tornado
    Tornado项目基本架构
    python闭包以及装饰器
    python语法糖
    python os模块
    TCP中的3次握手和4次挥手
    Python常见的数据类型方法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5404221.html
Copyright © 2020-2023  润新知