iOS单元格高度计算

//  Created by mac on 16/6/29.
//  Copyright © 2016年 zcc. All rights reserved.
//

#import "HotCellHeight.h"
#import "UIViewExt.h"
#import "CommonalityH.h"
#define kTextWidth (kScreenWidth-20) //文字宽度
#define GAP 5

@implementation HotCellHeight
- (void)setHotModel:(HotModel *)hotModel{

    _hotModel = hotModel;
    //计算高度
    
    [self countHeight];


}
#pragma mark 计算高度
- (void)countHeight{
    CGFloat audiofloat = 0;
    CGFloat imgfloat = 0;
    CGFloat countHeight = 0;
    _Height = 0;
    
    //计算头像 位置
    
    _avatarFrame = CGRectMake(GAP, GAP, 30, 30);
    countHeight += _avatarFrame.size.height + GAP * 2 ;
    //用户名称位置
    _user_NameFrame = CGRectMake(CGRectGetMaxX(_avatarFrame)+GAP, GAP, kScreenWidth - 30 - GAP * 2, 30);
    

    
    //计算线的位置
    
    _wireFrame = CGRectMake(GAP, CGRectGetMaxY(_avatarFrame) + GAP,kScreenWidth - GAP*2 , 6);
    
    countHeight += _wireFrame.size.height + GAP;
    
    
    
    //计算图片位置
    if(_hotModel.post_img == nil){
        
        imgfloat = CGRectGetMaxY(_wireFrame);
    }else{
    
    
        _imgFrame = CGRectMake(GAP, CGRectGetMaxY(_wireFrame)+ GAP, kScreenWidth - GAP*2 ,kScreenWidth - GAP*2);
        
        countHeight += _imgFrame.size.height + GAP;
    
    imgfloat =  CGRectGetMaxY(_imgFrame);
    }
    //计算文本位置
    
        NSDictionary *dic = @{
                              NSFontAttributeName :
                              [UIFont fontWithName:@"FZLTCXHJW--GB1-0" size:15]
                              ,
                              NSForegroundColorAttributeName :[UIColor blackColor]
                              
                              };
     CGSize maximumLabelSize = CGSizeMake(kTextWidth, 120);
    CGRect zFrame = [_hotModel.content boundingRectWithSize:maximumLabelSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
    
    _contentFrame = CGRectMake(10, imgfloat + GAP, kTextWidth, zFrame.size.height);
    
    countHeight += _contentFrame.size.height + GAP ;
    
    //计算歌曲(背景)区域图片
    
    if(_hotModel.post_audio == nil){
 
        audiofloat = CGRectGetMaxY(_contentFrame);
        
    }else{
    
    
        _backAudioFrame = CGRectMake(GAP, CGRectGetMaxY(_contentFrame)+ GAP, kScreenWidth-GAP*2, 36);
        
        //计算歌曲图片
        _audioFrame = CGRectMake(GAP+3, CGRectGetMinY(_backAudioFrame)+3, 30, 30);
        
        audiofloat = CGRectGetMaxY(_backAudioFrame);
        countHeight += _backAudioFrame.size.height + GAP ;
        
        
        //歌曲名称位置
        _song_nameFrame = CGRectMake(CGRectGetMaxX(_audioFrame)+3, CGRectGetMinY(_backAudioFrame)+3,kScreenWidth - GAP + 3 + 3 + 30, 15);
       
        _artistFrame = CGRectMake(CGRectGetMaxX(_audioFrame)+3, CGRectGetMinY(_backAudioFrame)+3 + 15, kScreenWidth - GAP + 3 + 3 + 30, 15);
        _countSongFrame = CGRectMake(CGRectGetMaxX(_backAudioFrame) - 40, CGRectGetMinY(_backAudioFrame)+3, 40, 30);
        
        _buttonLucencyFrame = _backAudioFrame;
    }
    
    
    
    //计算更新时间位置
    
    _downFrame = CGRectMake(GAP*2, audiofloat + GAP, kScreenWidth/2, 20);
    
    countHeight += _downFrame.size.height + GAP * 2;
    
    
    //背景大小位置
    
    _backFrame = CGRectMake(0, 0, kScreenWidth, countHeight);
    
    _Height = countHeight;
    
    //不计算高度  计算位置
    
    CGFloat wfloat = kScreenWidth/7;
    //点赞图片位置
    _vote_countImgFrame = CGRectMake(wfloat * 4.0 , audiofloat + GAP, 20, 20);
    //评论图片
    _comment_countImgFrame = CGRectMake(wfloat * 5.0 , audiofloat + GAP, 20, 20);
    //分享图片
    _shareImgFrame = CGRectMake(wfloat * 6.0 +10 , audiofloat + GAP, 20, 20);
    //点赞数量
    _vote_countFrame = CGRectMake(wfloat * 4.0 +25 , audiofloat + GAP, 30, 20);
    //评论数量
    _comment_countFrame = CGRectMake(wfloat * 5.0  +25  , audiofloat + GAP, 30, 20);
}
@end

  .h

//
//  Created by mac on 16/6/29.
//  Copyright © 2016年 zcc. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "HotModel.h"
@interface HotCellHeight : NSObject
@property(nonatomic,assign)CGRect avatarFrame;//头像
@property(nonatomic,assign)CGRect wireFrame;//线
@property(nonatomic,assign)CGRect imgFrame;//700
@property(nonatomic,assign)CGRect contentFrame;//文本
@property(nonatomic,assign)CGRect audioFrame;//音乐图片高度
@property(nonatomic,assign)CGRect backAudioFrame;//区域音乐图片高度
@property(nonatomic,assign)CGRect downFrame;//更新时间
@property(nonatomic,assign)CGRect backFrame;//背景图片大小

@property(nonatomic,assign)CGFloat Height;//单元格总高度
@property(nonatomic,copy)HotModel *hotModel;//数据

@property(nonatomic,assign)CGRect user_NameFrame;//用户名
@property(nonatomic,assign)CGRect song_nameFrame;//歌名
@property(nonatomic,assign)CGRect artistFrame;//艺术家名称
@property(nonatomic,assign)CGRect countSongFrame;//歌曲数量
@property(nonatomic,assign)CGRect vote_countImgFrame;//点赞图片
@property(nonatomic,assign)CGRect comment_countImgFrame;//评论图片
@property(nonatomic,assign)CGRect shareImgFrame;//分享
@property(nonatomic,assign)CGRect vote_countFrame;//点赞数量
@property(nonatomic,assign)CGRect comment_countFrame;//评论数量

@property(nonatomic,assign)CGRect buttonLucencyFrame;//透明button的大小
@end
posted @ 2016-08-19 10:06  SessionOne  阅读(297)  评论(0编辑  收藏  举报