IOS展開三級列表效果示例
更新時間:2016年08月14日 09:41:37 投稿:daisy
今天介紹的是一個很不錯的三級列表展開效果的例子,文章運用實例代碼介紹的很詳細,提供給學(xué)習(xí)IOS的小伙伴們使用。
效果圖如下:


#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end
#import "AppDelegate.h"
#import "RootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
RootViewController *root = [[RootViewController alloc] init];
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:root];
self.window.rootViewController = navi;
[self.window makeKeyAndVisible];
return YES;
}
@end
#import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end
#import "RootViewController.h"
#import "MainCell.h"
#import "DetialTableViewCell.h"
@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>
{
UITableView *_tableView;
NSMutableDictionary *dic;//存對應(yīng)的數(shù)據(jù)
NSMutableArray *selectedArr;// 二級列表是否展開狀態(tài)
NSMutableArray *titleDataArray;
NSArray *dataArray;//數(shù)據(jù)源,顯示每個cell的數(shù)據(jù)
NSMutableDictionary *stateDic;//三級列表是否展開狀態(tài)
NSMutableArray *groupArr0;
NSMutableArray *groupArr1;
NSMutableArray *groupArr2;
NSMutableArray *groupArr3;
NSMutableArray *groupArr4;
NSMutableArray *groupArr5;
}
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"列表";
dic = [[NSMutableDictionary alloc] init];
selectedArr = [[NSMutableArray alloc] init];
dataArray = [[NSMutableArray alloc] init];
// 初始化tableView
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320*scaleX, [UIScreen mainScreen].bounds.size.height) style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
// 隱藏滾動條
_tableView.showsVerticalScrollIndicator = NO;
_tableView.showsHorizontalScrollIndicator = NO;
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.view addSubview:_tableView];
// 加載數(shù)據(jù)
[self loadData];
}
/**
* 加載數(shù)據(jù)
*/
- (void)loadData
{
titleDataArray = [[NSMutableArray alloc] initWithObjects:@"親朋",@"家人",@"好友", @"藍顏",@"同學(xué)",@"老鄉(xiāng)",nil];
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小莉",@"name",@"NO",@"state", nil];
NSMutableDictionary *nameAndStateDic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"婷婷",@"name",@"NO",@"state", nil];
NSMutableDictionary *nameAndStateDic3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小莊",@"name",@"NO",@"state", nil];
groupArr0 = [[NSMutableArray alloc] initWithObjects:nameAndStateDic1,nameAndStateDic2,nameAndStateDic3, nil];
NSMutableDictionary *nameAndStateDic4 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"晨晨姐",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic5 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"李濤",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic6 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"海波",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic7 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"張敏",@"name",@"NO",@"state",nil];
groupArr1 = [[NSMutableArray alloc]initWithObjects:nameAndStateDic4,nameAndStateDic5,nameAndStateDic6,nameAndStateDic7, nil];
NSMutableDictionary *nameAndStateDic8 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"楊浩",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic9 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小明",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic10 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"洋洋",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic11 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"趙蒙",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic12 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小催",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic13 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"和平",@"name",@"NO",@"state",nil];
groupArr2 = [[NSMutableArray alloc]initWithObjects:nameAndStateDic8,nameAndStateDic9,nameAndStateDic10,nameAndStateDic11,nameAndStateDic12,nameAndStateDic13,nil];
NSMutableDictionary *nameAndStateDic14 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"超人",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic15 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"怪獸",@"name",@"NO",@"state",nil];
groupArr3 = [[NSMutableArray alloc] initWithObjects:nameAndStateDic14,nameAndStateDic15, nil];
NSMutableDictionary *nameAndStateDic16 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"大包",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic17 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小林子",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic18 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"石頭",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic19 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"小軒軒",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic20 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"阿東",@"name",@"NO",@"state",nil];
groupArr4 = [[NSMutableArray alloc]initWithObjects:nameAndStateDic16,nameAndStateDic17,nameAndStateDic18,nameAndStateDic19,nameAndStateDic20, nil];
NSMutableDictionary *nameAndStateDic21 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"鄭平",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic22 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"劉凡",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic23 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"韓琴",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic24 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"劉華健",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic25 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"彭曉明",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic26 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"張歡",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic27 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"劉來楠",@"name",@"NO",@"state",nil];
NSMutableDictionary *nameAndStateDic28 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",@"任強",@"name",@"NO",@"state",nil];
groupArr5 = [[NSMutableArray alloc]initWithObjects:nameAndStateDic21,nameAndStateDic22,nameAndStateDic23,nameAndStateDic24,nameAndStateDic25,nameAndStateDic26,nameAndStateDic27,nameAndStateDic28, nil];
[dic setValue:groupArr0 forKey:@"0"];
[dic setValue:groupArr1 forKey:@"1"];
[dic setValue:groupArr2 forKey:@"2"];
[dic setValue:groupArr3 forKey:@"3"];
[dic setValue:groupArr4 forKey:@"4"];
[dic setValue:groupArr5 forKey:@"5"];
}
#pragma mark - tableViewDelegate -
// 返回幾個表頭
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return titleDataArray.count;
}
// 每個表頭返回幾行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSString *string = [NSString stringWithFormat:@"%d",(int)section];
// 如果表頭返回值不為零,則修改圖片(改成箭頭向下的圖片)
if ([selectedArr containsObject:string]) {
UIImageView *imageView = (UIImageView *)[_tableView viewWithTag:20000 + section];
imageView.image = [UIImage imageNamed:@"buddy_header_arrow_down"];
NSArray *array1 = dic[string];
return array1.count;
}
return 0;
}
// 設(shè)置表頭的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40*scaleX;
}
// Section Footer的高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.2;
}
// 設(shè)置view,將替代titleForHeaderInsection方法
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320*scaleX, 30*scaleY)];
view.backgroundColor = [UIColor whiteColor];
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20*scaleX, 5*scaleY, tableView.frame.size.width - 20*scaleX, 30*scaleY)];
titleLabel.text = [titleDataArray objectAtIndex:section];
[view addSubview:titleLabel];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(5*scaleX, 12*scaleY, 15*scaleX, 15*scaleY)];
imageView.tag = 20000+section;
// 判斷是不是選中狀態(tài)
NSString *string = [NSString stringWithFormat:@"%d",(int)section];
if ([selectedArr containsObject:string]) {
imageView.image = [UIImage imageNamed:@"buddy_header_arrow_down"];
}else{
imageView.image = [UIImage imageNamed:@"buddy_header_arrow_right"];
}
[view addSubview:imageView];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 320*scaleX, 40*scaleY);
button.tag = 100 + section;
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];
UIImageView *lineImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 40*scaleY - 1, 320*scaleX, 1)];
lineImage.image = [UIImage imageNamed:@"line"];
[view addSubview:lineImage];
return view;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *indexStr = [NSString stringWithFormat:@"%d",(int)indexPath.section];
if ([dic[indexStr][indexPath.row][@"cell"] isEqualToString:@"MainCell"]) {
return 60*scaleY;
}else{
return 40*scaleY;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 當(dāng)前是第幾個表頭
NSString *indexStr = [NSString stringWithFormat:@"%d",(int)indexPath.section];
if ([dic[indexStr][indexPath.row][@"cell"] isEqualToString:@"MainCell"]) {
static NSString *identifier = @"MainCell";
MainCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[MainCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
}
if ([selectedArr containsObject:indexStr]) {
cell.Headerphoto.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",arc4random()%11]];
cell.nameLabel.text = dic[indexStr][indexPath.row][@"name"];
cell.IntroductionLabel.text = @"滴滴雨點仿佛似流淚,滴在我冰冷的身軀";
cell.networkLabel.text = @"2G";
}
// ???
if (indexPath.row == dataArray.count - 1) {
cell.imageLine.image = nil;
}else{
cell.imageLine.image = [UIImage imageNamed:@"line"];
}
return cell;
}else if ([dic[indexStr][indexPath.row][@"cell"] isEqualToString:@"AttachedCell"]){
static NSString *detialIdentifier = @"AttachedCell";
DetialTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:detialIdentifier];
if (cell == nil) {
cell = [[DetialTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:detialIdentifier];
cell.selectionStyle = UITableViewCellSeparatorStyleNone;
cell.imageLine.image = [UIImage imageNamed:@"line"];
}
return cell;
}
return nil;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// TODO:search
[_tableView deselectRowAtIndexPath:indexPath animated:YES];
NSString *indexStr = [NSString stringWithFormat:@"%d",(int)indexPath.section];
NSIndexPath *path = nil;
if ([dic[indexStr][indexPath.row][@"cell"] isEqualToString:@"MainCell"]) {
// TODO:search
path = [NSIndexPath indexPathForItem:(indexPath.row + 1) inSection:indexPath.section];
}else{
path = indexPath;
}
if ([dic[indexStr][indexPath.row][@"state"] boolValue]) {
// 關(guān)閉附加cell
NSMutableDictionary *dd = dic[indexStr][indexPath.row];
NSString *name = dd[@"name"];
NSMutableDictionary *nameAndStateDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",name,@"name",@"NO",@"state", nil];
switch (indexPath.section) {
case 0:
{
groupArr0[(path.row-1)] = nameAndStateDic;
[groupArr0 removeObjectAtIndex:path.row];
}
break;
case 1:
{
groupArr1[(path.row-1)] = nameAndStateDic;
[groupArr1 removeObjectAtIndex:path.row];
}
break;
case 2:
{
groupArr2[(path.row-1)] = nameAndStateDic;
[groupArr2 removeObjectAtIndex:path.row];
}
break;
case 3:
{
groupArr3[(path.row-1)] = nameAndStateDic;
[groupArr3 removeObjectAtIndex:path.row];
}
break;
case 4:
{
groupArr4[(path.row-1)] = nameAndStateDic;
[groupArr4 removeObjectAtIndex:path.row];
}
break;
case 5:
{
groupArr5[(path.row-1)] = nameAndStateDic;
[groupArr5 removeObjectAtIndex:path.row];
}
break;
default:
break;
}
[_tableView beginUpdates];
[_tableView deleteRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationMiddle];
[_tableView endUpdates];
}else{
// 打開附加cell
NSMutableDictionary *dd = dic[indexStr][indexPath.row];
NSString *name = dd[@"name"];
NSMutableDictionary *nameAndStateDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"MainCell",@"cell",name,@"name",@"YES",@"state", nil];
switch (indexPath.section) {
case 0:
{
groupArr0[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr0 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
case 1:
{
groupArr1[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr1 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
case 2:
{
groupArr2[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr2 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
case 3:
{
groupArr3[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr3 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
case 4:
{
groupArr4[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr4 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
case 5:
{
groupArr5[(path.row-1)] = nameAndStateDic;
NSMutableDictionary *nameAndStateDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"AttachedCell",@"cell",@"YES",@"state", nil];
[groupArr5 insertObject:nameAndStateDic1 atIndex:path.row];
}
break;
default:
break;
}
[_tableView beginUpdates];
[_tableView insertRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationMiddle];
[_tableView endUpdates];
}
}
-(void)buttonAction:(UIButton *)sender
{
NSString *string = [NSString stringWithFormat:@"%d",(int)(sender.tag-100)];
//數(shù)組selectedArr里面存的數(shù)據(jù)和表頭想對應(yīng),方便以后做比較
if ([selectedArr containsObject:string])
{
[selectedArr removeObject:string];
}
else
{
[selectedArr addObject:string];
}
[_tableView reloadData];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
#import <UIKit/UIKit.h> @interface MainCell : UITableViewCell @property (strong, nonatomic) UILabel *nameLabel; @property (strong, nonatomic) UILabel *IntroductionLabel; @property (strong, nonatomic) UILabel *networkLabel; @property (strong, nonatomic) UIImageView *Headerphoto; @property (strong, nonatomic) UIImageView *imageLine; @end
#import "MainCell.h"
@implementation MainCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// 頭像
_Headerphoto = [[UIImageView alloc] initWithFrame:CGRectMake(6*scaleX, 5*scaleY, 50*scaleX, 50*scaleX)];
[self.contentView addSubview:_Headerphoto];
// 名字
_nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(60*scaleX, 5*scaleY, 200*scaleX, 25*scaleX)];
_nameLabel.font = [UIFont systemFontOfSize:15];
[self.contentView addSubview:_nameLabel];
// 簡介
_IntroductionLabel = [[UILabel alloc] initWithFrame:CGRectMake(60*scaleX, 28*scaleY, 240*scaleX, 25*scaleX)];
_IntroductionLabel.backgroundColor = [UIColor clearColor];
_IntroductionLabel.textColor = [UIColor lightGrayColor];
_IntroductionLabel.font = [UIFont systemFontOfSize:13];
[self.contentView addSubview:_IntroductionLabel];
// 網(wǎng)絡(luò)
_networkLabel = [[UILabel alloc] initWithFrame:CGRectMake(290*scaleX, 5*scaleY, 50*scaleX, 25*scaleY)];
_networkLabel.backgroundColor = [UIColor clearColor];
_networkLabel.textColor = [UIColor lightGrayColor];
_networkLabel.font = [UIFont systemFontOfSize:13];
[self.contentView addSubview:_networkLabel];
// 分割線
_imageLine = [[UIImageView alloc] initWithFrame:CGRectMake(60*scaleX, 60*scaleY - 1, (320 - 60)*scaleX, 1)];
[self.contentView addSubview:_imageLine];
}
return self;
}
@end
#import <UIKit/UIKit.h> @interface DetialTableViewCell : UITableViewCell @property (strong, nonatomic) UIImageView *imageLine; @end
#import "DetialTableViewCell.h"
#import "UIButton+initializer.h"
@implementation DetialTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// 分割線
_imageLine = [[UIImageView alloc] initWithFrame:CGRectMake(60*scaleX, 40*scaleY - 1, (320 - 60)*scaleY, 1)];
[self.contentView addSubview:_imageLine];
UIButton *btn1 = [UIButton initButtonWithFrame:CGRectMake(70*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:@"語音" Target:self Selector:@selector(btnAction:)];
btn1.tag = 100;
UIButton *btn2 = [UIButton initButtonWithFrame:CGRectMake(130*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:@"視頻" Target:self Selector:@selector(btnAction:)];
btn2.tag = 200;
UIButton *btn3 = [UIButton initButtonWithFrame:CGRectMake(190*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:@"圖片" Target:self Selector:@selector(btnAction:)];
btn3.tag = 300;
UIButton *btn4 = [UIButton initButtonWithFrame:CGRectMake(250*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:@"表情" Target:self Selector:@selector(btnAction:)];
btn4.tag = 400;
[self.contentView addSubview:btn1];
[self.contentView addSubview:btn2];
[self.contentView addSubview:btn3];
[self.contentView addSubview:btn4];
}
return self;
}
- (void)btnAction:(UIButton *)sender
{
switch (sender.tag) {
case 100:
{
NSLog(@"~~~~語音~~~~");
}
break;
case 200:
{
NSLog(@"~~~~視頻~~~~");
}
break;
case 300:
{
NSLog(@"~~~~圖片~~~~");
}
break;
case 400:
{
NSLog(@"~~~~表情~~~~");
}
break;
default:
break;
}
}
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
#import <UIKit/UIKit.h> @interface UIButton (initializer) /** * 初始化button * * @param frame button的尺寸 * @param target button的目標對象 * @param selector 點擊button所觸發(fā)的方法 * @param image button的背景圖片 * @param imagePressed button高亮?xí)r的圖片 * * @return button */ + (UIButton *)initButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed; /** * 初始化button * * @param frame button的尺寸 * @param title button的標題 * @param target button的目標對象 * @param selector 點擊button所觸發(fā)的方法 * * @return button */ + (UIButton *)initButtonWithFrame:(CGRect)frame Title:(NSString *)title Target:(id)target Selector:(SEL)selector; @end
#import "UIButton+initializer.h"
@implementation UIButton (initializer)
+ (UIButton *)initButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:frame];
UIImage *newImage = [UIImage imageNamed:image];
[button setBackgroundImage:newImage forState:0];
UIImage *newPressedImage = [UIImage imageNamed:imagePressed];
[button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted];
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
return button;
}
+ (UIButton *)initButtonWithFrame:(CGRect)frame Title:(NSString *)title Target:(id)target Selector:(SEL)selector
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:frame];
[button setTitle:title forState:0];
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
return button;
}
@end
pch文件的代碼:
#ifndef QQList_PrefixHeader_pch #define QQList_PrefixHeader_pch #define scaleX [UIScreen mainScreen].bounds.size.width/320.0 #define scaleY [UIScreen mainScreen].bounds.size.height/568.0 #endif
總結(jié)
以上就是在IOS展開三級列表效果示例的全部內(nèi)容,希望本文的內(nèi)容對大家IOS時能有所幫助。
相關(guān)文章
詳解iOS應(yīng)用開發(fā)中使用設(shè)計模式中的抽象工廠模式
這篇文章主要介紹了iOS應(yīng)用開發(fā)中使用設(shè)計模式中的抽象工廠模式,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-03-03
關(guān)于iOS中屬性變量setter與getter方法的理解
這篇文章主要給大家介紹了關(guān)于iOS中屬性變量setter與getter方法的相關(guān)資料,文章介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06

