【发布时间】:2017-03-02 00:26:54
【问题描述】:
我已经编写了展开和折叠的代码,这里我的问题是,在表格视图中,当我点击第一个单元格时,它正在正确展开,但是当我点击第二个单元格时,第一个单元格自动折叠。 我的代码是
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(isFilter)
{
return [searchArray count];
}
else
return [responceArray count];
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Content1"];
if(!cell)
{
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Content1"];
}
UILabel *namelab = (UILabel *)[cell viewWithTag:1];
UILabel *state = (UILabel *)[cell viewWithTag:2];
UILabel *status = (UILabel *)[cell viewWithTag:4];
UILabel *serialNo=(UILabel *)[cell viewWithTag:8];
UILabel *company = (UILabel *)[cell viewWithTag:5];
UIView *aview=(UIView *)[cell.contentView viewWithTag:10];
if(isFilter)
{
serialNo.text=[NSString stringWithFormat:@"%@",[[searchArray objectAtIndex:indexPath.row] valueForKey:@"job_id"]];
namelab.text=[[searchArray objectAtIndex:indexPath.row]valueForKey:@"maintenance_friendly_name"];
state.text=[[searchArray objectAtIndex:indexPath.row]valueForKey:@"site_id"];
status.text=[[searchArray objectAtIndex:indexPath.row]valueForKey:@"maintenance_status"];
company.text=[[searchArray objectAtIndex:indexPath.row]valueForKey:@"orgname"];
}
else
{
serialNo.text=[NSString stringWithFormat:@"%@",[[responceArray objectAtIndex:indexPath.row] valueForKey:@"job_id"]];
namelab.text=[[responceArray objectAtIndex:indexPath.row]valueForKey:@"maintenance_friendly_name"];
state.text=[[responceArray objectAtIndex:indexPath.row]valueForKey:@"site_id"];
status.text=[[responceArray objectAtIndex:indexPath.row]valueForKey:@"maintenance_status"];
company.text=[[responceArray objectAtIndex:indexPath.row]valueForKey:@"orgname"];
}
//alternative background colors for better division ;)
if (indexPath.row %2 ==1)
cell.backgroundColor = [UIColor colorWithRed:.9 green:.9 blue:.9 alpha:1];
else
cell.backgroundColor = [UIColor colorWithRed:.8 green:.8 blue:.8 alpha:1];
// name.text = [cellTitles objectAtIndex:indexPath.row];
if (isTagsExapanded == YES && isSelectedRowIndex == indexPath.row) {
cell.contentView.frame = CGRectMake(0, 0,self.view.frame.size.width,160);
aview.backgroundColor=[UIColor lightGrayColor];
[cell.contentView viewWithTag:3].transform = CGAffineTransformMakeRotation(0);
}else{
cell.contentView.frame = CGRectMake(0, 0,self.view.frame.size.width,160);
aview.backgroundColor=[UIColor colorWithRed:1.00 green:1.00 blue:1.00 alpha:1.0];
}
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (isTagsExapanded && isSelectedRowIndex == indexPath.row) {
return 160;
}else{
return 75;
}
return 0;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (!isTagsExapanded ) {
isTagsExapanded = YES;
isSelectedRowIndex = indexPath.row;
}else{
isTagsExapanded = NO;
}
[_collapeExpandUITBV reloadData];
}
【问题讨论】:
-
请正确解释这里的问题是什么,您是否需要第一个单元格在第二个选择时折叠
-
当我点击第一个单元格时,它正在完美展开,但是当我点击第二个单元格时,第一个单元格会自动折叠,但我希望第一个单元格也被展开,直到我点击第一个单元格,不应该折叠
标签: ios uitableview ipad tableviewcell