zoukankan      html  css  js  c++  java
  • UITableview

    #import "DengViewController.h"
    #import <CoreGraphics/CoreGraphics.h>
    @interface DengViewController ()
    
    
    
    @end
    
    @implementation DengViewController
    
    @synthesize arrayStrig=_arrayStrig;
    //@synthesize number=_number;
    //@synthesize data=_data;
    //@synthesize tableview=_tableview;
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
        
        self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            _data=[[NSMutableArray alloc] initWithCapacity:0];
        }
        
        return self;
    }
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        /*
        UITableView *tableview = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
        
        tableview.delegate=self;
        tableview.dataSource=self;
        [tableview setEditing:YES];
            [self.view addSubview:tableview];
        
        NSArray *array1=[[NSArray alloc] initWithObjects:@"one",@"three",@"five",@"seven",@"nine", nil];
        NSArray *array2=[[NSArray alloc] initWithObjects:@"two",@"four",@"six",@"eight",@"ten" ,nil];
        
        self.arrayStrig=[[NSArray alloc] initWithObjects:array1,array2, nil];
         */
        
        UIView *v =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
        v.backgroundColor=[UIColor grayColor];
        [self.view addSubview:v];
        
        UIButton *but = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        but.frame=CGRectMake(20, 5, 40, 30);
        [but setTitle:@"添加" forState:UIControlStateNormal];
        [but addTarget:self action:@selector(add:) forControlEvents:UIControlEventTouchUpInside];
        but.alpha=0.8;
        [v addSubview:but];
        
        but = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        but.frame=CGRectMake(260, 5, 40, 30);
        [but setTitle:@"编辑" forState:UIControlStateNormal];
        [but addTarget:self action:@selector(edit:) forControlEvents:UIControlEventTouchUpInside];
        but.alpha=0.8;
        [v addSubview:but];
        
        CGRect frame= CGRectMake(0, 40, self.view.bounds.size.width, self.view.bounds.size.height-40);
        _tableview=[[UITableView alloc] initWithFrame:frame];
        _tableview.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
        _tableview.delegate=self;
        _tableview.dataSource=self;
        [self.view addSubview:_tableview];
        
       // _data=[[NSMutableArray alloc] initWithObjects:@"one",@"three",@"five",@"seven",@"nine", nil];
        
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    
    #pragma mark-(处理tableview)
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
        
      
        //return [self.arrayStrig count];
        return 1;
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    #if 0
        if (0==section) {
            return 5;
        }else
            return 5;
    #endif
        
       // return [[self.arrayStrig objectAtIndex:section] count];
        return _data.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        
        
        
        
        NSInteger row=indexPath.row;
        NSInteger section=indexPath.section;
        NSString *data = [[self.arrayStrig objectAtIndex:section] objectAtIndex:row];
        
    #pragma mark可重用cell机制
        static NSString * identifier=@"Cell";
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];
        if (cell==nil) {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }
        
        cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
        
        cell.textLabel.text=data;
        
        return cell;
    }
    #if 0
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
        if (section==1) {
            return @"偶数";
        }else
        return @"奇数";
    }
    #endif
    
    #pragma mark-自定义页眉
    /*
    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
        return 50;
    }
    
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
        
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
        label.backgroundColor=[UIColor grayColor];
        label.textAlignment=NSTextAlignmentLeft;
        label.font=[UIFont fontWithName:nil size:18];
        label.textColor=[UIColor redColor];
        //label.font=[UIFont systemFontOfSize:18];
        if (section==1) {
             label.text=@"偶数";
           
        
        }else
            label.text=@"奇数";
        
    
       return label;
        
    }
     */
    #pragma mark-自定义页脚
    
    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
        return 30;
    }
    - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
        
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];
        label.backgroundColor=[UIColor orangeColor];
        label.textAlignment=NSTextAlignmentCenter;
        label.text=@"尾页";
        label.font=[UIFont fontWithName:nil size:15];
        return label;
    }
    
    
    #pragma mark-选择section
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        
        NSInteger row=indexPath.row;
        NSInteger section=indexPath.section;
    #pragma mark自定义警告视图的messag
        NSString *msg = [NSString stringWithFormat:@"section:%d,row:%d",section,row];
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
        [alert show];
    }
    
    #pragma mark-索引
    /*
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
        return [NSString stringWithFormat:@"%c",'A'+section];
    }
    
    - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
        return [[UILocalizedIndexedCollation currentCollation] sectionIndexTitles];
        
    }
    
    - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
        return index;
    }
    */
    #pragma mark-可编辑
    
    - (void)add:(UIButton *)but{
        NSString *string = [NSString stringWithFormat:@"%d",_number++];
        [_data addObject:string];
        [_tableview reloadData];
       
    }
    
    - (void)edit:(UIButton *)but{
        if ([_tableview isEditing]) {
            [but setTitle:@"编辑" forState:UIControlStateNormal];
            [_tableview setEditing:NO animated:YES];
        }else{
            [but setTitle:@"完成" forState:UIControlStateNormal];
            [_tableview setEditing:YES animated:YES];
        }
    }
    
    #pragma mark选择编辑的风格
    - (UITableViewCellEditingStyle )tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
        
        if (indexPath.row%2) {
            return UITableViewCellEditingStyleDelete;
        }else
            return UITableViewCellEditingStyleInsert;
    }
    
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
        if (editingStyle==UITableViewCellEditingStyleDelete) {
            [_data removeObjectAtIndex:indexPath.row];
            [_tableview deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
            
            
        }
        else if (editingStyle==UITableViewCellEditingStyleInsert){
            [_data insertObject:[NSString stringWithFormat:@"%d",_number++] atIndex:indexPath.row];
            [_tableview insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationRight];
        }
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    Android拍照、摄像方向旋转的问题 代码具体解释
    Java 实现桥接(Bridge)模式
    C++标准I/O库:iostream, fstream, sstringstream
    Android 使用 DownloadManager 管理系统下载任务的方法
    JavaScript提高:005:ASP.NET使用easyUI TABS标签显示问题
    使用c++的cocos2d-x-3.0rc1程序公布apk
    UVA 146 ID Codes(下一个排列)
    C/C++:C++伪函数
    开源项目AndroidUtil-採用Fragment实现TabHost
    系统编程是什么
  • 原文地址:https://www.cnblogs.com/deng37s/p/4582615.html
Copyright © 2011-2022 走看看