在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;
}