iOS tableViewCell點擊後顯示下拉式功能表

來源:互聯網
上載者:User

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




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.