CNLiveDownSlideModelLayout.swift 2.89 KB
//
//  CNLiveDownSlideModelLayout.swift
//  metaCode
//
//  Created by zx on 2023/10/23.
//

import Foundation


class CNLiveDownSlideModelLayout:NSObject{
    
    ///cell高度
    var cellH:CGFloat = 0.0
    
    //slideModel
    var _slideModel : CNLiveDownSlideModel?
    var slideModel : CNLiveDownSlideModel? {
        get{
            _slideModel
        }
        set{
            _slideModel = newValue
        }
    }
    
    init(model:CNLiveDownSlideModel){
        super.init()
        self.slideModel = model
        //总块数
        let contentsNum = model.contents.count
        //model行数
        let row = model.rowNum
        if(_slideModel?.type == SlideModelTypeRecommend4){//推荐活动,推荐课程
            
            //总显示块数/循环数
            var totalNum = (contentsNum >= row*2) ? row*2 : contentsNum
            if row == 0{//row为0 , contents全部显示
                totalNum = contentsNum
            }
            _slideModel?.cellH = Float(ceil(CGFloat(totalNum)*0.5)*(DownSlideRecommendWH + DownSlideRecommendLeftGap))
        }else if(_slideModel?.type == SlideModelTypeTodayRecommend74){//今日推荐
            //总显示块数/循环数
            var totalNum = (contentsNum >= row) ? row : contentsNum
            if row == 0{//row为0 , contents全部显示
                totalNum = contentsNum
            }
            _slideModel?.cellH = Float(CGFloat(totalNum)*(DownSlideTodayRecommendH + DownSlideRecommendLeftGap))
        }else if(_slideModel?.type == SlideModelTypeAllCourse12){//全部课程
            //总显示块数/循环数
            var totalNum = (contentsNum >= row) ? row : contentsNum
            if row == 0{//row为0 , contents全部显示
                totalNum = contentsNum
            }
            
            _slideModel?.cellH = Float(DownSlideAllCourseTitleH + DownSlideAllCourseRowH * CGFloat(totalNum)+DownSlideRecommendLeftGap)
            
        }else if(_slideModel?.type == SlideModelTypeOneCourse75){//单节课程
            
            _slideModel?.cellH = Float(DownSlideSingleCourseImgH + DownSlideSingleCourseMoreH+DownSlideRecommendLeftGap)
        }else if(_slideModel?.type == SlideModelTypeTwoDuanJu5){//竖版短剧 一排2个
            
            //总显示块数/循环数
            var totalNum = (contentsNum >= row*2) ? row*2 : contentsNum
            if row == 0{//row为0 , contents全部显示
                totalNum = contentsNum
            }
            _slideModel?.cellH = Float(ceil(CGFloat(totalNum)*0.5)*(DownSlideTwoDuanJuH))
        }else if(_slideModel?.type == SlideModelTypeRealHotList7){//7实时热榜
            
            _slideModel?.cellH = Float(DownSlideRealHotListH)+Float(DownSlideRecommendLeftGap)
        }else{
            _slideModel?.cellH = 0
        }        
        
        
    }
    func getCellHModel()->CNLiveDownSlideModel{
        return _slideModel!
    }
    
}