如何在UITableView中显示类似iMessage iPhone应用程序的时间

如何在UITableView中显示类似iMessage iPhone应用程序的时间,iphone,uitableview,Iphone,Uitableview,在像iMessage iPhone应用程序一样刷卡时,我无法在UITableView中显示时间。我已启用属性:显示水平滚动条和垂直反弹。但它不能像iMessage应用程序那样正常工作。它需要突出显示UITableViewCell内容并显示时间 - (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (self.isOpen && se

在像iMessage iPhone应用程序一样刷卡时,我无法在UITableView中显示时间。我已启用属性:显示水平滚动条垂直反弹。但它不能像iMessage应用程序那样正常工作。它需要突出显示UITableViewCell内容并显示时间

- (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