如何在UITableView中显示类似iMessage iPhone应用程序的时间
在像iMessage iPhone应用程序一样刷卡时,我无法在UITableView中显示时间。我已启用属性:显示水平滚动条和垂直反弹。但它不能像iMessage应用程序那样正常工作。它需要突出显示UITableViewCell内容并显示时间如何在UITableView中显示类似iMessage iPhone应用程序的时间,iphone,uitableview,Iphone,Uitableview,在像iMessage iPhone应用程序一样刷卡时,我无法在UITableView中显示时间。我已启用属性:显示水平滚动条和垂直反弹。但它不能像iMessage应用程序那样正常工作。它需要突出显示UITableViewCell内容并显示时间 - (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (self.isOpen && se
- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.isOpen && self.selectIndex.section == indexPath.section)
{
NujMessage *message = [self.sectionMessages objectAtIndex:indexPath.section];
if(indexPath.row == 0)
{
int nujHeight = message.isNuj ? 15 : 0;
int cellHeight = message.size.height + kMargin + nujHeight;
if([message.moreMessages count] > 0)
{
return cellHeight > kNujMessageHeight ? cellHeight : kNujMessageHeight;
}
else
{
return cellHeight > kSectionHeaderHeight ? cellHeight : kSectionHeaderHeight ;
}
}
else{
int moreMsgCount = [message.moreMessages count];
if(indexPath.row == 1 && message.size.height <= 70)
{
message = [message.moreMessages objectAtIndex:indexPath.row - 1];
[self setMakeSizeOfMessage:message];
}
else
message = [message.moreMessages objectAtIndex:indexPath.row - 1];
int nujHeight = message.isNuj ? 15 : 0;
int cellHeight = message.size.height + kMargin + nujHeight;
if(moreMsgCount == indexPath.row )
cellHeight += 10;
else
{
nujHeight = message.isNuj ? 15 : 0;
cellHeight = message.size.height + kMargin + nujHeight;
}
return cellHeight;
}
}
else
{
NujMessage *message = [self.sectionMessages objectAtIndex:indexPath.section];
int nujHeight = message.isNuj ? 17 : 0;
int cellHeight = message.size.height + kMargin + nujHeight + 10;
if(indexPath.row == 0)
return cellHeight> kSectionHeaderHeight ? cellHeight: kSectionHeaderHeight;
else
return cellHeight;
}
return kSectionHeaderHeight ;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NujMessage *message = [self.sectionMessages objectAtIndex:indexPath.section];
if (message.opened && self.selectIndex.section == indexPath.section && indexPath.row!=0) {
static NSString *bubbleCellIdentifier = @"bubbleCell";
NujBubbleTableViewCell *bubbleTableViewCell = (NujBubbleTableViewCell*)[tableView dequeueReusableCellWithIdentifier:bubbleCellIdentifier];
if(!bubbleTableViewCell)
{
bubbleTableViewCell = [[NujBubbleTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:bubbleCellIdentifier];
bubbleTableViewCell.selectionStyle = UITableViewCellEditingStyleNone;
[bubbleTableViewCell setDelegate:self];
[bubbleTableViewCell setFrame:tableView.frame];
UITapGestureRecognizer *doubleTap = [[ UITapGestureRecognizer alloc] initWithTarget:self action:@selector(collapseMessages:)];
doubleTap.numberOfTapsRequired = 2;
[bubbleTableViewCell addGestureRecognizer:doubleTap];
[doubleTap release];
UILongPressGestureRecognizer *recognizerMessage = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(performActionForMessage:)];
[bubbleTableViewCell.bubbleImage addGestureRecognizer:recognizerMessage];
[recognizerMessage release];
}
[bubbleTableViewCell setSelectIndex:indexPath];
NujMessage *message = [self.sectionMessages objectAtIndex:indexPath.section];
[bubbleTableViewCell setAllowEditing:message.editing];
message = [message.moreMessages objectAtIndex:indexPath.row - 1];
[bubbleTableViewCell setShowAvatar:NO];
bubbleTableViewCell.moreMsg = NO;
[bubbleTableViewCell selectCheckButton:message.selected];
[bubbleTableViewCell setType:message.isFromMe];
NSBubbleAlign align = indexPath.section % 2 == 0 ? BubbleAlignMine : BubbleAlignSomeoneElse;
[bubbleTableViewCell setupInternalViewWithMessage:message align:align];
[bubbleTableViewCell didSelected:message.selected];
if(isEditing)
{
[bubbleTableViewCell.contentView setAlpha: message.editing ? 1.0 : 0.5];
[bubbleTableViewCell.avatarImage setAlpha: message.editing ? 1.0 : 0.5];
[bubbleTableViewCell.labelName setAlpha: message.editing ? 1.0 : 0.5];
}
else
{
[bubbleTableViewCell.contentView setAlpha:1.0];
[bubbleTableViewCell.avatarImage setAlpha:1.0 ];
[bubbleTableViewCell.labelName setAlpha:1.0];
}
return bubbleTableViewCell;
}
else
{
static NSString *bubbleCellIdentifier = @"sectionBubbleCell";
NujBubbleTableViewCell *bubbleTableViewCell = (NujBubbleTableViewCell*)[tableView dequeueReusableCellWithIdentifier:bubbleCellIdentifier];
if(!bubbleTableViewCell)
{
bubbleTableViewCell = [[NujBubbleTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:bubbleCellIdentifier];
bubbleTableViewCell.selectionStyle = UITableViewCellEditingStyleNone;
[bubbleTableViewCell setDelegate:self];
UITapGestureRecognizer *doubleTap = [[ UITapGestureRecognizer alloc] initWithTarget:self action:@selector(collapseMessages:)];
doubleTap.numberOfTapsRequired = 2;
[bubbleTableViewCell addGestureRecognizer:doubleTap];
[doubleTap release];
UILongPressGestureRecognizer *recognizerMessage = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(performActionForMessage:)];
[bubbleTableViewCell.bubbleImage addGestureRecognizer:recognizerMessage];
[recognizerMessage release];
UILongPressGestureRecognizer *recognizerUser = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(performActionForUser:)];
[bubbleTableViewCell.avatarImage setUserInteractionEnabled:YES];
[bubbleTableViewCell.avatarImage addGestureRecognizer:recognizerUser];
[recognizerUser release];
}
[bubbleTableViewCell setSelectIndex:indexPath];
NujMessage *message = [self.sectionMessages objectAtIndex:indexPath.section];
bubbleTableViewCell.moreMsg = message.moreMessagesCount > 0 && !message.opened;
[bubbleTableViewCell setShowAvatar:YES];
[bubbleTableViewCell setAllowEditing:message.editing];
[bubbleTableViewCell selectCheckButton:message.selected];
[bubbleTableViewCell setName:message.buddy.displayName];
[bubbleTableViewCell setType:message.isFromMe];
[bubbleTableViewCell setupInternalViewWithMessage:message
align:indexPath.section % 2 == 0 ? BubbleAlignMine : BubbleAlignSomeoneElse
];
[bubbleTableViewCell didSelected:message.selected];
[bubbleTableViewCell hideCheckButton:message.editing];
if(isEditing)
{
[bubbleTableViewCell.contentView setAlpha: message.editing ? 1.0 : 0.5];
[bubbleTableViewCell.avatarImage setAlpha: message.editing ? 1.0 : 0.5];
[bubbleTableViewCell.labelName setAlpha: message.editing ? 1.0 : 0.5];
}
else
{
[bubbleTableViewCell.contentView setAlpha:1.0];
[bubbleTableViewCell.avatarImage setAlpha:1.0 ];
[bubbleTableViewCell.labelName setAlpha:1.0];
}
return bubbleTableViewCell;
}
}
-(float)tableView:(UITableView*)tableView高度for rowatindexpath:(nsindepath*)indepath
{
if(self.isOpen&&self.selectIndex.section==indexPath.section)
{
numessage*message=[self.sectionMessages objectAtIndex:indexath.section];
if(indexPath.row==0)
{
int numheight=message.isNuj?15:0;
int cellHeight=message.size.height+kMargin+numheight;
如果([message.moreMessages count]>0)
{
返回cellHeight>kNujMessageHeight?cellHeight:kNujMessageHeight;
}
其他的
{
返回cellHeight>kSectionHeaderHeight?cellHeight:kSectionHeaderHeight;
}
}
否则{
int moreMsgCount=[message.moreMessages count];
if(indexath.row==1&&message.size.height kSectionHeaderHeight?单元格高度:kSectionHeaderHeight;
其他的
返回高度;
}
返回k头八;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
numessage*message=[self.sectionMessages objectAtIndex:indexath.section];
if(message.opened&&self.selectIndex.section==indexPath.section&&indexPath.row!=0){
静态NSString*bubbleCellIdentifier=@“bubbleCell”;
NujBubbleTableViewCell*bubbleTableViewCell=(NujBubbleTableViewCell*)[tableView dequeueReusableCellWithIdentifier:bubbleCellIdentifier];
if(!bubbleTableViewCell)
{
bubbleTableViewCell=[[NujBubbleTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:bubbleCellIdentifier];
bubbleTableViewCell.selectionStyle=UITableViewCellEditingStyleNone;
[bubbleTableViewCell setDelegate:self];
[bubbleTableViewCell setFrame:tableView.frame];
UITapGestureRecognizer*doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(collapseMessages:)];
doubleTap.numberOfTapsRequired=2;
[bubbleTableViewCell AddGestureRecognitor:doubleTap];
[双击释放];
UILongPressGestureRecognitzer*RecognitzerMessage=[[UILongPressGestureRecognitzer alloc]initWithTarget:self action:@selector(PerformActionFormMessage:)];
[bubbleTableViewCell.bubbleImage AddgestureRecognitizer:RecognitizerMessage];
[识别器信息发布];
}
[bubbleTableViewCell setSelectIndex:indexPath];
numessage*message=[self.sectionMessages objectAtIndex:indexath.section];
[bubbleTableViewCell设置允许编辑:message.editing];
message=[message.moreMessages objectAtIndex:indexath.row-1];
[bubbleTableViewCell设置显示化身:否];
bubbleTableViewCell.moreMsg=否;
[bubbleTableViewCell selectCheckButton:message.selected];
[bubbleTableViewCell集合类型:message.isFromMe];
NSBubbleAlign=indexPath.section%2==0?BubbleAlignMine:BubbleAlignSomeOther;
[bubbleTableViewCell设置InternalViewWithMessage:message align:align];
[已选择bubbleTableViewCell:message.selected];
如果(i编辑)
{
[bubbleTableViewCell.contentView setAlpha:message.editing?1.0:0.5];
[bubbleTableViewCell.avatarImage setAlpha:message.editing?1.0:0.5];
[bubbleTableViewCell.labelName setAlpha:message.editing?1.0:0.5];
}
其他的
{
[bubbleTableViewCell.contentView setAlpha:1.0];
[bubbleTableViewCell.avatarImage setAlpha:1.0];
[bubbleTableViewCell.labelName setAlpha:1.0];
}
返回气泡可视单元格;
}
其他的
{
静态NSString*bubbleCellIdentifier=@“sectionBubbleCell”;
NujBubbleTableViewCell*bubbleTableViewCell=(NujBubbleTableViewCell*)[tableView dequeueReusableCellWithIdentifier:bubbleCellIdentifier];
if(!bubbleTableViewCell)
{
bubbleTableViewCell=[[NujBubbleTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:bubbleCellIdentifier];
bubbleTableViewCell.selectionStyle=UITableViewCellEditingStyleNone;
[bubbleTableViewCell setDelegate:self];
UITapGestureRecognizer*doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(collapseMessages:)];
doubleTap.numberOfTapsRequired=2;
[bubbleTableViewCell AddGestureRecognitor:doubleTap];
[双击释放];
UILongPressGestureRecognitzer*RecognitzerMessage=[[UILongPressGestureRecognitzer alloc]initWithTarget:self action:@selector(PerformActionFormMessage:)];
[bubbleTableViewCell.bubbleImage AddgestureRecognitizer:RecognitizerMessage];
[识别器信息发布];
UILongPressGestureRecognitzer*RecognitzerUser=[[UILongPressGestureRecognitzer alloc]initWithTarget:self action:@selector(performationforuser:)];
[bubbleTableViewCell.avatarImage setUserInteractionEnabled:是];
[bubbleTableViewCell.avatarImage AddgestureRecognitizer:RecognitizerUser];
[识别器用户发布];
}
[bubbleTableViewCell setSelectIndex:indexPath];
numessage*message=[self.sectionMessages objectAtIndex:indexath.section];
bubbleTableViewCell.moreMsg=message.MoreMessageScont>0&&!message.opened;
[bubbleTableViewCell设置显示化身:是];
[bubbleTableViewCell设置允许编辑:message.edi