在messageFrame模型的set方法中计算子控件的frame,计算frame的同时,还要在自定义cell中设置时间居中和字体大小
按钮的文字为黑色,字体大小,不换行。
- (void)setMessage:(JSMessage*)message
{
_message= message;//计算frame
CGFloatmargin =10;//时间
CGFloattimeX =0;
CGFloattimeY =0;
CGFloattimeW =320;
CGFloattimeH =40;
_timeF=CGRectMake(timeX, timeY, timeW, timeH);
分区 第八天(QQ聊天)的第4页
_timeF=CGRectMake(timeX, timeY, timeW, timeH);//头像
CGFloaticonW =50;
CGFloaticonH =50;
CGFloaticonY =CGRectGetMaxY(self.timeF);CGFloaticonX;
if(self.message.type==JSMessageTypeSelf) {
iconX =320- iconW - margin;
} else {
iconX = margin;
}
_iconF=CGRectMake(iconX, iconY, iconW, iconH);//消息
CGSizetextMaxSize =CGSizeMake(200,MAXFLOAT);
CGSizetextSize = [selfsizeWithText:self.message.text font:[UIFont
systemFontOfSize:14]maxSize:textMaxSize];
CGFloattextX =0;
CGFloattextY = iconY;
if(self.message.type==JSMessageTypeSelf) {
textX = iconX - textSize.width- margin;
} else {
textX =CGRectGetMaxX(self.iconF) + margin;
}
_textF=CGRectMake(textX, textY, textSize.width, textSize.height);
CGFloattextMaxH =CGRectGetMaxY(self.textF);CGFloaticonMaxH =CGRectGetMaxY(self.iconF); _rowHeight=MAX(textMaxH, iconMaxH) + margin;
}
- (CGSize)sizeWithText:(NSString*)text font:(UIFont*)font maxSize:(CGSize)maxSize
{
NSDictionary*atts =@{NSFontAttributeName:font};
return[textboundingRectWithSize:maxSizeoptions:NSStringDrawingUsesLineFragmentOrigin attributes:attscontext:nil].size;
}
网友评论