一个tableView加载两种cell的方法解析(会加载两种了,你要是再不会加载三种,四种,你可以去反思了)

在项目过程中,我们会经常遇到一些页面,他们看似是用tableView做的,又感觉不像,上下之间毫无规律,有时候我们可能就给他自定义出来了,或者毫无思路。今天给大家带来一个小小的思路。

单元格的cell的内容

//
//  ViewController.m
//  test-01
//
//  Created by mac on 16/1/6.
//  Copyright © 2016年 ZY. All rights reserved.
//

#import "ViewController.h"
#import "ViewTableViewCell.h"
@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
   
    
    _tableView.delegate = self;
    _tableView.dataSource = self;
    
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    if (indexPath.row%2 == 0) {
        
        return 100;
    }
    return 200;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    
    return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    static NSString *cell1 = @"cell1";

    ViewTableViewCell *cell1First = [tableView dequeueReusableCellWithIdentifier:cell1];
    
    if (indexPath.row%2 == 0) {
        
        
        
        if (!cell1First) {
            
            cell1First = [[[NSBundle mainBundle] loadNibNamed:@"ViewTableViewCell" owner:nil options:nil] firstObject];
            
        }
        
        cell1First.backgroundColor = [UIColor yellowColor];
        
        return cell1First;
        
    }else{
        
        
        
        
        if (!cell1First) {
            
            cell1First = [[[NSBundle mainBundle] loadNibNamed:@"ViewTableViewCell" owner:nil options:nil] lastObject];

        }

        cell1First.backgroundColor = [UIColor orangeColor];
        return cell1First;
    }
    
    return nil;
}

@end
原文地址:https://www.cnblogs.com/zxh-iOS/p/5123845.html