• IOS -- 纯代码实现tableview


    1.HMBookListenTimingView.h  添加

    #import "NSObject+HMCategory.h"
    
    

    <UITableViewDelegate,UITableViewDataSource>

     
    self.tableview = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W, rect.size.height-60) style:UITableViewStylePlain];
        self.tableview.scrollEnabled = NO;
        self.tableview.backgroundColor = [UIColor clearColor];
        self.tableview.alpha = 0.9;
        self.tableview.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        self.tableview.separatorInset = UIEdgeInsetsMake(0, 20, 0, 20);
        [_tableview registerClass:[HMBookListenTimingViewCell class] forCellReuseIdentifier:[HMBookListenTimingViewCell hm_className]];
        _tableview.delegate = self;
        _tableview.dataSource = self;
        [self addSubview:_tableview];

    协议方法

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        
        HMBookListenTimingViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[HMBookListenTimingViewCell hm_className] forIndexPath:indexPath];
        
        _currentSelectTimingModel = _timeListenData[indexPath.row];
        cell.leftLable.text = _currentSelectTimingModel.title;
        
        if (indexPath.row == self.timeListenData.count - 1) {
            [tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
        }
        return cell;
    }

    2.HMBookListenTimingViewCell.h

    #import <UIKit/UIKit.h>
    #import "HMBookListenTimingManager.h"
    
    @interface HMBookListenTimingViewCell : UITableViewCell
    
    @property (nonatomic, strong)  UILabel *leftLable;                  //左边标题
    @property (nonatomic, strong)  UILabel *countDownLable;             //剩下的时间
    @property (nonatomic, strong)  UIImageView *chooseImageView;        //选择图片
    
    @end

    HMBookListenTimingViewCell.m

    #import "HMBookListenTimingViewCell.h"
    #import <Masonry.h>
    
    
    @implementation HMBookListenTimingViewCell
    
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
            self.selectionStyle = UITableViewCellSelectionStyleNone;
            self.backgroundColor = [UIColor clearColor];
           
            _leftLable = [[UILabel alloc] init];
            _leftLable.textColor = [self colorWithHex:0x262626] ;
            _leftLable.font = [UIFont systemFontOfSize:15.0];
            _leftLable.textAlignment = NSTextAlignmentLeft;
            [self.contentView addSubview:_leftLable];
            [_leftLable mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(self.contentView.mas_left).offset(30);
                make.top.equalTo(self.contentView.mas_top).offset(12);
                make.width.equalTo(@120);
                make.height.equalTo(@18);
            }];
            
            _chooseImageView = [[UIImageView alloc] init];
            _chooseImageView.image = [UIImage imageNamed:@"ic_listen_time_unselect.png"];
            [self.contentView addSubview:_chooseImageView];
            [_chooseImageView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.right.equalTo(self.contentView.mas_right).offset(-30);
                make.top.equalTo(self.contentView.mas_top).offset(11);
                make.width.equalTo(@22);
                make.height.equalTo(@22);
            }];
            
            _countDownLable = [[UILabel alloc] init];
            _countDownLable.textColor = [self colorWithHex:0x262626] ;
            _countDownLable.font = [UIFont systemFontOfSize:15.0];
            _countDownLable.textAlignment = NSTextAlignmentRight;
            [self.contentView addSubview:_countDownLable];
            [_countDownLable mas_makeConstraints:^(MASConstraintMaker *make) {
                make.right.equalTo(self.chooseImageView.mas_left).offset(-15);
                make.top.equalTo(self.mas_top).offset(12);
                make.width.equalTo(@80);
                make.height.equalTo(@18);
            }];
            
        }
        return self;
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated
    {
        [super setSelected:selected animated:animated];
        if (selected) {
            _chooseImageView.image = [UIImage imageNamed:@"ic_listen_time_select.png"];
        } else {
            _chooseImageView.image = [UIImage imageNamed:@"ic_listen_time_unselect.png"];
        }
    }
    
    
    //颜色处理
    - (UIColor *)colorWithHex:(NSInteger)hexValue
    {
        return [self colorWithHex:hexValue alpha:1.0];
    }
    
    - (UIColor *)colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue
    {
        return [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0
                               green:((float)((hexValue & 0xFF00) >> 8)) / 255.0
                                blue:((float)(hexValue & 0xFF)) / 255.0
                               alpha:alphaValue];
    }
    
    
    @end
  • 相关阅读:
    leetcode 763. Partition Labels
    JS字符串格式化~欢迎来搂~~
    手把手教你在pycharm上上传项目至GitHub
    手把手教你用原始方式上传项目至GitHub
    python3.7环境下创建app、运行Django1.11版本项目报错Generator expression must be parenthesized
    在学习python的DjangoFlaskTornado前你需要知道的,what is web?
    python手撸桌面计算器
    jQuery之克隆事件--clone()与clone(true)区别
    前端之jQuery基础
    通过案例来剖析JQuery与原生JS
  • 原文地址:https://www.cnblogs.com/qiyiyifan/p/7250635.html
Copyright © 2020-2023  润新知