iOS中使用UItableviewcell实现团购和微博界面的示例

2020-01-14 18:26:55于海丽

    }
}
/**
 *  设置子控件的frame
 */
- (void)settingFrame
{

       // 设置头像的frame
    self.iconView.frame = self.weiboFrame.iconF;
    
    // 设置昵称的frame
        self.nameLabel.frame = self.weiboFrame.nameF;
    
    // 设置vip的frame
       self.vipView.frame = self.weiboFrame.vipF;
    
    // 设置正文的frame
       self.introLabel.frame = self.weiboFrame.introF;
    
    // 设置配图的frame

    if (self.weiboFrame.weibo.picture) {// 有配图
        self.pictureView.frame = self.weiboFrame.pictrueF;
    }
}

/**
 *  计算文本的宽高
 *
 *  @param str     需要计算的文本
 *  @param font    文本显示的字体
 *  @param maxSize 文本显示的范围
 *
 *  @return 文本占用的真实宽高
 */
- (CGSize)sizeWithString:(NSString *)str font:(UIFont *)font maxSize:(CGSize)maxSize
{
    NSDictionary *dict = @{NSFontAttributeName : font};
    // 如果将来计算的文字的范围超出了指定的范围,返回的就是指定的范围
    // 如果将来计算的文字的范围小于指定的范围, 返回的就是真实的范围
    CGSize size =  [str boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;
    return size;
}

@end


NJWeiboFrame.h文件
复制代码
//  专门用来保存每一行数据的frame, 计算frame

 

#import <Foundation/Foundation.h>
@class NJWeibo;
@interface NJWeiboFrame : NSObject
/**
 *  头像的frame
 */
@property (nonatomic, assign) CGRect iconF;
/**
 *  昵称的frame
 */
@property (nonatomic, assign) CGRect nameF;
/**
 *  vip的frame
 */
@property (nonatomic, assign) CGRect vipF;