新浪微博开发之二十八(原创微博frame)

来源:互联网 发布:mac电脑如何卸载sdk 编辑:程序博客网 时间:2024/05/21 09:18
//
//  MyweiboOriginalFrame.h
//  新浪微博
//
//  Created by Jose on 15-4-20.
//  Copyright (c) 2015年 jose. All rights reserved.
//  原创微博frame


#import <Foundation/Foundation.h>
#import "UIView+Extension.h"
@class MyWeiboModel;


@interface MyweiboOriginalFrame : NSObject
/** 原创微博用户昵称*/
@property(nonatomic,assign)CGRect nameframe;
/** 原创微博时间 */
//@property(nonatomic,assign)CGRect timeframe;
/** 原创微博用来源 */
//@property(nonatomic,assign)CGRect sourceframe;
/** 原创微博图标 */
@property(nonatomic,assign)CGRect iconframe;
/** 会员图标 */
@property(nonatomic,assign)CGRect vipiconframe;
/** 原创微博文本 */
@property(nonatomic,assign)CGRect textframe;
/** 原创微博自己的frame */
@property(nonatomic,assign)CGRect originalframe;
/** 原创微博数据通过传入微博数据来设置frame的大小也就是set方法 */
@property(nonatomic,strong)MyWeiboModel *originalweibo;

@end



**************************************************************************************************************************************

*************************************************************************************************************************************

**************************************************************************************************************************************

//
//  MyweiboOriginalFrame.m
//  新浪微博
//
//  Created by Jose on 15-4-20.
//  Copyright (c) 2015年 jose. All rights reserved.
//


#import "MyweiboOriginalFrame.h"
#import "MyWeiboModel.h"
#import "MyUserModel.h"
#import "Global.h"


@implementation MyweiboOriginalFrame
#pragma mark
//传入微博数据计算微博frame大小,使用set方法来设置frame的大小
-(void)setOriginalweibo:(MyWeiboModel *)originalweibo{
    //保存微博数据
    _originalweibo=originalweibo;
    
    //1.头像
    CGFloat iconx=CellMargin;
    CGFloat icony=CellMargin;
    CGFloat iconw=45;
    CGFloat iconh=45;
    self.iconframe=CGRectMake(iconx, icony, iconw,iconh);
    
    //2.计算昵称
    CGFloat namex=CGRectGetMaxX(self.iconframe)+CellMargin;
    CGFloat namey=icony;
    CGSize namesize=[originalweibo.user.name sizeWithFont:OriginalName];
    self.nameframe=(CGRect){{namex,namey},namesize};
    
    //3.计算会员图标的位置
    if (originalweibo.user.isvip) {
        CGFloat vipx=CGRectGetMaxX(self.nameframe)+CellMargin;
        CGFloat vipy=namey;
        CGFloat viph=namesize.height;
        CGFloat vipw=viph;
        self.vipiconframe=CGRectMake(vipx, vipy, vipw, viph);
    }
    /****
    //4.计算时间
    CGFloat timex=namex;
    CGFloat timey=CGRectGetMaxY(self.nameframe)+CellMargin*0.5;
    CGSize timesize=[originalweibo.created_at sizeWithFont:OriginalTime];
    self.timeframe=(CGRect){{timex,timey},timesize};
    
    //5.计算来源
    CGFloat sourcex=CGRectGetMaxX(self.timeframe)+CellMargin;
    CGFloat sourcey=timey;
    CGSize sourcesize=[originalweibo.source sizeWithFont:OriginalSource];
    self.sourceframe=(CGRect){{sourcex,sourcey},sourcesize};
    ****/
    //6.计算正文
    CGFloat textx=iconx;
    CGFloat texty=CGRectGetMaxY(self.iconframe)+CellMargin;
    CGFloat maxw=ScreenBounds.size.width-2*CellMargin;
    //计算最大的大小尺寸
    CGSize maxsize=CGSizeMake(maxw,MAXFLOAT );
    CGSize textsize=[originalweibo.text sizeWithFont:OrigibnalText constrainedToSize:maxsize];
    self.textframe=(CGRect){{textx,texty},textsize};
    
    //7.计算自己的frame
    CGFloat x=0;
    CGFloat y=0;
    CGFloat w=ScreenBounds.size.width;
    CGFloat h=CGRectGetMaxY(self.textframe)+CellMargin;
    self.originalframe=CGRectMake(x, y, w, h);
}
@end

0 0