当您使用autoresize单击特定索引时,如何展开和折叠tableviewcell

时间:2017-06-07 11:30:37

标签: ios objective-c uitableview

当我点击特定索引处的单元格时,我想展开和折叠单元格。

我正在使用自动调整大小,并且单元格中的数据是动态的,即基于标签内容的单元格大小增加我使用自动调整而不是自动布局。

当我点击单元格时,单元格大小会增加,要增加的大小也是动态的,这取决于标签内容。

请找到我的以下代码

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSInteger numOfSections = 0;
if (tableView==_commentstbl_view) {
    return commentsarray.count;
}
else

    if (isclassifiedarray.count > 0)
    {
        _myadstabelview.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        _myadstabelview.backgroundView = nil;
        numOfSections = isclassifiedarray.count;
    }
    else
    {
        // UILabel *noDataLabel         = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, _notificationTblView.bounds.size.width, _notificationTblView.bounds.size.height)];
        // noDataLabel.text             = @"No Results Found!";
        // noDataLabel.textColor        = [UIColor blackColor];
        // noDataLabel.numberOfLines = 4;
        // noDataLabel.textAlignment    = NSTextAlignmentCenter;
        // _notificationTblView.backgroundView = noDataLabel;
        _myadstabelview.separatorStyle = UITableViewCellSeparatorStyleNone;
    }

    return numOfSections;

    return isclassifiedarray.count;


  }
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 1;

 }
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


    commentscell = (commentsTableViewCell*)[_commentstbl_view dequeueReusableCellWithIdentifier:@"commentsTableViewCell" forIndexPath:indexPath];
    commentscell.selectionStyle = UITableViewCellSelectionStyleNone;
    [commentscell.layer setCornerRadius:4.0f];
    [commentscell.layer setMasksToBounds:YES];
    commentscell.profileimg.layer.cornerRadius=4.0f;
    commentscell.profileimg.layer.masksToBounds = YES;
    NSString  *mobilenumber=[NSString stringWithFormat:@"%@",[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"clubber_mobile"]];
    NSString *comment=[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"comment"];


    UIFont *font=[UIFont fontWithName:@"Montserrat" size:14.0];

    CGFloat size1 = [self getLabelHeightForStringforcomment:commentscell.commentlbl.text font:font];
    commentscell.commentlbl.frame=CGRectMake(commentscell.commentlbl.frame.origin.x, commentlbYposition, commentscell.commentlbl.frame.size.width, size1);
    commentscell.commentdatelbl.frame=CGRectMake(commentscell.commentdatelbl.frame.origin.x, commentlbYposition+size1, commentscell.commentdatelbl.frame.size.width, commentscell.commentdatelbl.frame.size.height);
     commentscell.providerdetailsbtnoutlet.frame=CGRectMake(commentscell.providerdetailsbtnoutlet.frame.origin.x, commentlbYposition+size1+commentscell.commentdatelbl.frame.size.height, commentscell.providerdetailsbtnoutlet.frame.size.width, commentscell.providerdetailsbtnoutlet.frame.size.height);
    if (selectedIndex==-1) {
        commentscell.providerdetails_view.hidden=YES;

    }else{
        commentscell.providerdetails_view.hidden=NO;
      commentscell.providerdetails_view.frame=CGRectMake(commentscell.providerdetailsbtnoutlet.frame.origin.x, commentlbYposition+size1+commentscell.commentdatelbl.frame.size.height+commentscell.providerdetailsbtnoutlet.frame.size.height, commentscell.providerdetails_view.frame.size.width, Providerdrtailviewhight);
        commentscell.providerdetails_view.backgroundColor=[UIColor whiteColor];
    }
    NSString *commentclubbername=[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"clubber_name"];
     NSString  *commentclubberid=[NSString stringWithFormat:@"%@",[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"clubberId"]];
    NSString *commentposteddate=[NSString stringWithFormat:@"%@",[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"posted_date"]];
     NSString *imgUrl = [NSString stringWithFormat:@"%s/presignin/clubber/getImage?clubberId=%@",urlPath,commentclubberid];
    NSURL *imageURL=[NSURL URLWithString:imgUrl];
    commentscell.profileimg.imageURL=imageURL;
    commentscell.usernamelbl.text=commentclubbername;
    commentscell.commentlbl.text=comment;
    commentscell.commentdatelbl.text=[Util formatDateAndTime1:commentposteddate];
     commentscell.callbtn.tag = indexPath.section;
    commentscell.msgbtn.tag = indexPath.section;
    commentscell.providerdetailsbtnoutlet.tag=indexPath.section;
     [commentscell.callbtn addTarget:self action:@selector(callbtnClicked:) forControlEvents:UIControlEventTouchUpInside];
     [commentscell.msgbtn addTarget:self action:@selector(messagebtnClicked:) forControlEvents:UIControlEventTouchUpInside];
  //  [commentscell.providerdetailsbtnoutlet addTarget:self action:@selector(providerdetailsbtnclick:) forControlEvents:UIControlEventTouchUpInside];
    commentscell.providerdetailsbtnoutlet.userInteractionEnabled=NO;
    NSString *experience=[NSString stringWithFormat:@"%@",[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"experience"]];

    NSArray* foo = [experience componentsSeparatedByString: @"."];
    if (foo.count==1) {
        NSString* year = [foo objectAtIndex: 0];
        // NSString* month = [foo objectAtIndex: 1];
        expersstr=[NSString stringWithFormat:@"%@ Years, 00 Months",year];
        commentscell.explbl.text=expersstr;
    }else{
        NSString* year = [foo objectAtIndex: 0];
        NSString* month = [foo objectAtIndex: 1];
        expersstr=[NSString stringWithFormat:@"%@ Years, %@ Months",year,month];
         commentscell.explbl.text=expersstr;
    }
    providerdescr=[NSString stringWithFormat:@"%@",[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"description"]];
    commentscell.desclbl.text=providerdescr;

    return commentscell;


  }
   - (CGFloat)tableView:(UITableView* )tableView heightForRowAtIndexPath:(NSIndexPath* )indexPath;

   {


    UIFont *font=[UIFont fontWithName:@"Montserrat" size:14.0];
   // NSString *str1 = [[isclassifiedarray objectAtIndex:indexPath.section]valueForKey:@"description"];

if (tableView==_commentstbl_view) {
    if (selectedIndex == indexPath.section)
    {
        CGFloat size1 = [self getLabelHeightForStringforcomment:[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"comment"] font:font];
      //  commentscell.providerdetails_view.hidden=NO;
        return 104+size1-20+45;

    }
    else{
        CGFloat size1 = [self getLabelHeightForStringforcomment:[[commentsarray objectAtIndex:indexPath.section]valueForKey:@"comment"] font:font];
       // commentscell.providerdetails_view.hidden=YES;
   return 104+size1-20;

    }



}

}

请找到明确的想法img。comment lbl is dynamic hight and description inthe expaned part is also dynamic

感谢您快速回复

0 个答案:

没有答案