亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS展開三級列表效果示例

2020-07-26 03:16:26
字體:
來源:轉載
供稿:網友

效果圖如下:

#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;//存對應的數據  NSMutableArray *selectedArr;// 二級列表是否展開狀態  NSMutableArray *titleDataArray;  NSArray *dataArray;//數據源,顯示每個cell的數據  NSMutableDictionary *stateDic;//三級列表是否展開狀態  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];    // 加載數據  [self loadData];}/** * 加載數據 */- (void)loadData{  titleDataArray = [[NSMutableArray alloc] initWithObjects:@"親朋",@"家人",@"好友", @"藍顏",@"同學",@"老鄉",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;}// 設置表頭的高度- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{  return 40*scaleX;}// Section Footer的高度- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{  return 0.2;}// 設置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;  // 判斷是不是選中狀態  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{  // 當前是第幾個表頭  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]) {    // 關閉附加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)];    //數組selectedArr里面存的數據和表頭想對應,方便以后做比較  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];        // 網絡    _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所觸發的方法 * @param image    button的背景圖片 * @param imagePressed button高亮時的圖片 * * @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所觸發的方法 * * @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

總結

以上就是在IOS展開三級列表效果示例的全部內容,希望本文的內容對大家IOS時能有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品嫩草影院一区二区| 丝袜亚洲欧美日韩综合| 亚洲国产一区二区三区四区| 日韩av在线最新| 成人黄色片网站| 国产91精品久久久| 国产亚洲欧美aaaa| 色偷偷综合社区| 91精品国产99久久久久久| 日韩av在线免播放器| 国产精品盗摄久久久| 欧美日韩一区二区免费在线观看| 欧美一区二区三区免费观看| 最近2019年好看中文字幕视频| 91午夜理伦私人影院| 亚洲日本中文字幕免费在线不卡| 欧美床上激情在线观看| 欧美情侣性视频| 伊人一区二区三区久久精品| 精品视频在线播放免| 久久亚洲精品一区二区| 欧美在线播放视频| 欧美成人亚洲成人日韩成人| 蜜臀久久99精品久久久无需会员| 成人久久18免费网站图片| 中文字幕一区二区三区电影| 国产97在线|日韩| 久久久亚洲欧洲日产国码aⅴ| 日韩欧美主播在线| 欧美性感美女h网站在线观看免费| 日本高清+成人网在线观看| 欧美日韩国产激情| 久久精品中文字幕免费mv| 91久久久久久久久久久| 性夜试看影院91社区| 在线日韩中文字幕| 中文字幕综合在线| 亚洲一区www| 亚洲跨种族黑人xxx| 国产精品美女视频网站| 亚洲欧美日韩天堂| 国产日韩欧美在线播放| 国产美女精品视频免费观看| 国产色婷婷国产综合在线理论片a| 久久久久日韩精品久久久男男| 欧美精品第一页在线播放| 久久久久久噜噜噜久久久精品| 欧洲成人在线视频| 国产欧美一区二区| 久久久99久久精品女同性| 欧美大成色www永久网站婷| 91嫩草在线视频| 欧美激情免费在线| 国产美女扒开尿口久久久| 久久久久久伊人| 亚洲美女在线观看| 搡老女人一区二区三区视频tv| 欧美成年人在线观看| 成人黄色在线观看| 欧美午夜xxx| 国产精品久久久久久久久久久久| 亚洲视频777| 国产精品三级在线| 91在线观看免费网站| 国产99久久久欧美黑人| 欧美—级a级欧美特级ar全黄| 97香蕉久久超级碰碰高清版| 国产精品亚洲美女av网站| 亚洲第一福利视频| 国产日韩一区在线| 亚洲男人第一av网站| 色诱女教师一区二区三区| 人体精品一二三区| 国产精品自拍偷拍| 国产亚洲精品激情久久| 91天堂在线观看| 久久精品国产欧美亚洲人人爽| 日本中文字幕不卡免费| 日韩专区在线观看| 亚洲欧美制服中文字幕| 久久久亚洲福利精品午夜| 91精品国产色综合久久不卡98| 欧美日韩免费在线观看| 少妇高潮 亚洲精品| 亚洲欧美日韩一区二区三区在线| 97av在线播放| 亚洲精品美女在线观看播放| 欧美激情国内偷拍| 中文字幕欧美日韩va免费视频| 国产日韩av高清| 最近更新的2019中文字幕| 92福利视频午夜1000合集在线观看| 亚洲精品v欧美精品v日韩精品| 欧美激情久久久久久| 亚洲成人网久久久| 一本色道久久88综合日韩精品| 欧美裸体xxxx| 97精品国产97久久久久久免费| 亚洲电影免费观看| 久久av资源网站| 在线精品国产成人综合| 日韩中文字幕精品| 欧美日韩国产综合视频在线观看中文| 日韩av中文字幕在线| 久久亚洲国产精品| 国产精品第一第二| 精品人伦一区二区三区蜜桃免费| 国产精品自拍视频| 国产一区二区在线免费| 亚洲电影第1页| 91免费在线视频| 国产精品 欧美在线| 成人免费福利在线| 亚洲精品小视频在线观看| 久久精品青青大伊人av| 亚洲乱亚洲乱妇无码| 91精品综合久久久久久五月天| 国产成人极品视频| 在线精品国产成人综合| 日韩不卡中文字幕| 欧洲亚洲在线视频| 国产视频亚洲精品| 国产亚洲欧洲黄色| 欧美成人黄色小视频| 亚洲成人国产精品| 亚洲一级黄色片| 欧美一级大片在线观看| 亚洲精品99999| 91免费视频国产| 97高清免费视频| 国产精品www网站| 日韩专区在线播放| 日韩av最新在线观看| 欧美激情一区二区三区在线视频观看| 日韩视频免费大全中文字幕| 国产精品久久久久久久久男| 亚洲白虎美女被爆操| 亚洲激情自拍图| 日本精品久久电影| 在线观看国产精品日韩av| 亚洲精品美女久久| 美日韩丰满少妇在线观看| 黑人狂躁日本妞一区二区三区| 欧美日韩成人在线观看| 色小说视频一区| 欧美一级bbbbb性bbbb喷潮片| 亚洲一区二区三区四区在线播放| 久久免费视频网| 久久男人的天堂| 日韩欧美国产网站| 亚洲另类图片色| 亚洲成人性视频| 欧美自拍视频在线| 亚洲三级av在线| 欧美激情精品久久久久| 亚洲亚裔videos黑人hd| 亚洲欧美精品伊人久久| 亚洲欧美资源在线| 国产精品久久久久久一区二区| 日韩免费av一区二区| 欧美激情精品久久久久久大尺度| 国产在线视频欧美| 国产99久久精品一区二区永久免费| 91精品国产色综合|