41.小项目:微博 M部分

---------- CZStatuse.h ----------

#import <Foundation/Foundation.h>


@interface CZStatuse : NSObject


@property (nonatomic, copy) NSString *name;

@property (nonatomic, copy) NSString *icon;

@property (nonatomic, copy) NSString *text;

@property (nonatomic, copy) NSString *picture;

@property (nonatomic, assign) BOOL vip;


- (instancetype)initWithDict:(NSDictionary *)dict;

+ (instancetype)statuseWithDict:(NSDictionary *)dict;


@end

---------- CZStatuse.m ----------

#import "CZStatuse.h"


@implementation CZStatuse


- (instancetype)initWithDict:(NSDictionary *)dict

{

    if (self = [super init])

    {

        [self setValuesForKeysWithDictionary:dict];

    }

    return self;

}


+ (instancetype)statuseWithDict:(NSDictionary *)dict

{

    return [[self alloc] initWithDict:dict];

}

@end

---------- CZStatuseFrame.h ----------

#import <Foundation/Foundation.h>

#define CZNameFont [UIFont systemFontOfSize:14]

#define CZTextFont [UIFont systemFontOfSize:14]



@class CZStatuse;


@interface CZStatuesFrame : NSObject


@property (nonatomic, assign, readonly) CGRect iconF;

@property (nonatomic, assign, readonly) CGRect nameF;

@property (nonatomic, assign, readonly) CGRect textF;

@property (nonatomic, assign, readonly) CGRect pictureF;

@property (nonatomic, assign, readonly) CGRect vipF;

@property (nonatomic, assign) CGFloat cellHeight;

@property (nonatomic, strong) CZStatuse *statuse;


@end

---------- CZStatuseFrame.m ---------- 

#import "CZStatuesFrame.h"

#import "CZStatuse.h"


@implementation CZStatuesFrame


- (void)setStatuse:(CZStatuse *)statuse

{

    _statuse = statuse;

    CGFloat padding = 10;

    CGFloat iconX = padding;

    CGFloat iconY = padding;

    CGFloat iconW = 30;

    CGFloat iconH = 30;

    _iconF = CGRectMake(iconX, iconY, iconW, iconH);

    CGSize nameSize = [self sizeWithText:_statuse.name andFont:CZNameFont andMaxSize:CGSizeMake(MAXFLOAT, MAXFLOAT)];

    CGFloat nameX = CGRectGetMaxX(self.iconF) + padding;

    CGFloat nameY = iconY + (iconH - nameSize.height) * 0.5;

    _nameF = CGRectMake(nameX, nameY, nameSize.width, nameSize.height);

    CGFloat vipX = CGRectGetMaxX(self.nameF) + padding;

    CGFloat vipY = nameY;

    CGFloat vipW = 14;

    CGFloat vipH = 14;

    _vipF = CGRectMake(vipX, vipY, vipW, vipH);

    CGFloat textX = iconX;

    CGFloat textY = CGRectGetMaxY(self.iconF) + padding;

    CGSize textSize = [self sizeWithText:_statuse.text andFont:CZTextFont andMaxSize:CGSizeMake(300, MAXFLOAT)];

    _textF = CGRectMake(textX, textY, textSize.width, textSize.height);

    if (_statuse.picture)

    {

        CGFloat pictureX = textX;

        CGFloat pictureY = CGRectGetMaxY(self.textF) + padding;

        CGFloat pictureW = 100;

        CGFloat pictureH = 100;

        _pictureF = CGRectMake(pictureX, pictureY, pictureW, pictureH);

        self.cellHeight = CGRectGetMaxY(self.pictureF) + padding;

    }

    else

    {

        self.cellHeight = CGRectGetMaxY(self.textF) + padding;

    }

}


- (CGSize)sizeWithText:(NSString *)text andFont:(UIFont *)font andMaxSize:(CGSize)maxSize

{

    NSDictionary *attrs = @{NSFontAttributeName : font};

    CGSize size = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;

    return size;

}


@end

转载于:https://www.cnblogs.com/lixiang2015/p/4719677.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值