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
原文地址:https://www.cnblogs.com/deng37s/p/4582615.html