首页 > 代码库 > 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点击后显示下拉菜单