首页 > 代码库 > iOS tableViewCell点击后显示下拉菜单

iOS tableViewCell点击后显示下拉菜单

//


1、具体的实现思路  就是 单机一个cell 的时候 在当前cell下在添加一个自己定义好的Cell,话不多说  代码如下,具体的过程从代码中去体会吧 本代码是从一个NT 的demo上整理出来的。


//  DDIUICtrl_Message.m

//  DDInsurance

//

//  Created by LeeYunHeNB on 14-9-26.

//  Copyright (c) 2014 XinMaHuTong. All rights reserved.

//


#import "DDIUICtrl_Message.h"

#import "DDIUICtrl_messageCell.h"

#import "DDUICtrl_menuCell.h"

@interface DDIUICtrl_Message ()


@property (weak, nonatomic) IBOutletUITableView *my_tableView;

@property (nonatomic,strong) NSMutableArray *dataArray;

@property (assign)BOOL isOpen;

@end


@implementation DDIUICtrl_Message


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

   self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];

   if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [superviewDidLoad];

    [selfsetTitle:@"我的消息"];

    [selfsetLeftButtonText:@""andBackground:[UIImageimageNamed:@"btn_back"]];

    NSDictionary *dic =@{@"Cell": @"MainCell",@"isAttached":@(NO)};

   NSArray * array = @[dic,dic,dic,dic,dic,dic];

    

   self.dataArray = [[NSMutableArrayalloc]init];

   self.dataArray = [NSMutableArrayarrayWithArray:array];

    

}


- (void)didReceiveMemoryWarning

{

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    

    // Return the number of rows in the section.

    return self.dataArray.count;;

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    

    // Return the number of sections.

   return 1;

}

// tableViewCell

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

   if ([[self.dataArray[indexPath.row]objectForKey:@"Cell"]isEqualToString:@"MainCell"])

    {

        

       static NSString *CellIdentifier =@"MainCell";

        

       DDIUICtrl_messageCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        

        

       if (cell == nil) {

            cell = [[DDIUICtrl_messageCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];

            

            cell.selectionStyle =UITableViewCellSelectionStyleGray;

        }

//        cell.Headerphoto.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",indexPath.row%4+1]];

        

       return cell;

        

    }elseif([[self.dataArray[indexPath.row]objectForKey:@"Cell"]isEqualToString:@"AttachedCell"]){

        

       static NSString *CellIdentifier =@"AttachedCell";

        

       DDUICtrl_menuCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        

        

       if (cell == nil) {

            cell = [[DDUICtrl_menuCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];

            

            cell.selectionStyle =UITableViewCellSelectionStyleNone;

        }

        

       return cell;

        

    }

    

    return nil;

}

// tableView点击事件

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    

    [tableView deselectRowAtIndexPath:indexPathanimated:YES];

    

   NSIndexPath *path = nil;

    

   if ([[self.dataArray[indexPath.row]objectForKey:@"Cell"]isEqualToString:@"MainCell"]) {

        path = [NSIndexPathindexPathForItem:(indexPath.row+1)inSection:indexPath.section];

    }else{

        path = indexPath;

    }

    

   if ([[self.dataArray[indexPath.row]objectForKey:@"isAttached"]boolValue]) {

        // 关闭附加cell

        NSDictionary * dic =@{@"Cell": @"MainCell",@"isAttached":@(NO)};

       self.dataArray[(path.row-1)] = dic;

        [self.dataArrayremoveObjectAtIndex:path.row];

        

        [self.my_tableViewbeginUpdates];

        [self.my_tableViewdeleteRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationMiddle];

        [self.my_tableViewendUpdates];

        

    }else{

        // 打开附加cell

        NSDictionary * dic =@{@"Cell": @"MainCell",@"isAttached":@(YES)};

       self.dataArray[(path.row-1)] = dic;

        NSDictionary * addDic =@{@"Cell": @"AttachedCell",@"isAttached":@(YES)};

        [self.dataArrayinsertObject:addDic atIndex:path.row];

        

        

        [self.my_tableViewbeginUpdates];

        [self.my_tableViewinsertRowsAtIndexPaths:@[path]withRowAnimation:UITableViewRowAnimationMiddle];

        [self.my_tableViewendUpdates];

        

    }

    

    

}

@end




iOS tableViewCell点击后显示下拉菜单