• UI3_UITableView


    //
    //  AppDelegate.m
    //  UI3_UITableView
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "AppDelegate.h"
    #import "ViewController.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        ViewController *root = [[ViewController alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
        self.window.rootViewController = nav;
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        return YES;
    }
    
    
    
    
    //
    //  ViewController.h
    //  UI3_UITableView
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>
    
    
    
    @end
    
    //
    //  ViewController.m
    //  UI3_UITableView
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    {
        UITableView *_tableView;
        NSMutableArray *_dataList;
    }
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        //UITableView继承UIScrollView
        //UITableViewStyleGrouped 分组
        //UITableViewStylePlain 无风格
        _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
        //tableView 模式横向不能滚动,只能竖向滚动,contentSize自动计算
        _tableView.backgroundColor = [UIColor cyanColor];
        [self.view addSubview:_tableView];
        
        //创建数据源
        _dataList = [NSMutableArray array];
        for (int i='A'; i<='Z'; i++) {
            NSMutableArray *nameArray = [NSMutableArray array];
            NSInteger count = arc4random()%10+1;
            for (int j=0; j<count; j++) {
                NSString *name = [NSString stringWithFormat:@"%c%d-name", (char)i, j];
                [nameArray addObject:name];
            }
            [_dataList addObject:nameArray];
        }
        self.automaticallyAdjustsScrollViewInsets = YES;
        
        _tableView.dataSource = self;
        _tableView.delegate = self;
        
    }
    
    #pragma mark ---UITableViewDataSource---
    
    //返回每个分区中的显示的行数
    //有多少个分区, 该方法被调用多少次
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [[_dataList objectAtIndex:section] count];
    }
    
    //重用机制
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //设定cell的重用标识符
        static NSString *cellID = @"cell";
        //先从表单元格重用队列中取出重用标识符的对象,如果为空,则创建表单元格对象
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
        if (!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
        }
        
        NSArray *nameArray = [_dataList objectAtIndex:indexPath.section];
        NSString *name = [nameArray objectAtIndex:indexPath.row];
        cell.textLabel.text  = name;
        cell.detailTextLabel.text = @"副标题test";
        //设置选中状态的风格
        cell.selectionStyle = UITableViewCellSelectionStyleGray;
        //设置右侧指示风格
        //详情风格
        cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
        //设置左侧图片
        cell.imageView.image = [UIImage imageNamed:@"friend_weixin@2x"];
        return cell;
    }
    
    //返回分区的个数
    
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return [_dataList count];
    }
    
    //设置分区的头标题
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
    {
        return [NSString stringWithFormat:@"第%c行",(char)(section+'A')];
    }
    
    //返回表单元格的高度,默认是44
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return 60;
    }
    
    //选中表单元格的时候调用该方法
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSLog(@"该表单元格被选中 section = %li row = %li", indexPath.section, indexPath.row);
        //设置表单元格为非选中状态,
        //[tableView deselectRowAtIndexPath:indexPath animated:YES];
    }
    //表单元格被取消时调用
    - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSLog(@"该表单元格被取消 section = %li row = %li", indexPath.section, indexPath.row);
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    
  • 相关阅读:
    从零开始学安全(七)●Linux基础命令学习笔记
    从零开始学安全(六)●黑客常用的Dos命令
    ABAP
    ABAP modify screen:修改屏幕,实现隐藏、禁止输入字段
    C#以对象为成员的例子
    C#构造函数、属性的应用
    C#属性方法 构造函数(不知道自己理解的对不对)
    C#斐波那契数列求法(比较阶乘和循环所用时间)
    C#函数的递归
    C#函数的参数传递2(refout)
  • 原文地址:https://www.cnblogs.com/0515offer/p/4643554.html
Copyright © 2020-2023  润新知