IOS展开三级列表效果示例

2020-01-15 18:48:25王冬梅

#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