读书人

致信息中收信人高度可变的实现

发布时间: 2013-07-20 11:07:48 作者: rapoo

写信息中收信人高度可变的实现
-(void)refreshReceiverView:(int)flag{if(flag == MSGV_DEL_CONTACT){NSMutableArray *temA = [[NSMutableArray alloc] init]; for(GPMsgReceiverView *msgV in [toContainerView subviews]){[temA addObject:msgV];[msgV removeFromSuperview];}receiverRowIndex = 0;indexOfFirstNewLine = 0;toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);[mainView reloadData];for(GPMsgReceiverView *msgV1 in temA){int count = [[toContainerView subviews] count];int length = count - indexOfFirstNewLine;NSArray *lineCheckArray = [[toContainerView subviews] objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(indexOfFirstNewLine, length)]];int totalWidth = 0;int oldWidth = 0;for(GPMsgReceiverView *mv in lineCheckArray){totalWidth += mv.frame.size.width;oldWidth += mv.frame.size.width; //some line, from the first to the last}totalWidth += msgV1.frame.size.width; //check if add current beyond the widthif(totalWidth < 250){msgV1.center = CGPointMake(oldWidth + msgV1.frame.size.width/2 + 5.0, 22.0+receiverRowIndex*44.0);}else {indexOfFirstNewLine = [[toContainerView subviews] count]; //-1 then +1++receiverRowIndex;msgV1.center = CGPointMake(msgV1.frame.size.width/2 + 5.0, 22.0+receiverRowIndex*44.0);}[toContainerView addSubview:msgV1];}[temA release];toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);}if(flag == MSGV_ADD_CONTACT){toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);}[mainView reloadData];}

?致信息中收信人高度可变的实现

读书人网 >移动开发

热点推荐