我有两个单元格用于节,另一个用于行。
这是我的代码
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return arrname.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(collapse==section)
{
return [arrDescription count]+1;
}
else
{
return 1;
}
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// productCell =[[productScreenCell alloc]init];
productCell=[tableView dequeueReusableCellWithIdentifier:@"cell"];
productSub=[tableView dequeueReusableCellWithIdentifier:@"cell1"];
if(indexPath.row==0)
{
if(arrname.count>0)
{
NSString *str=[NSString stringWithFormat:LocalImage@"%@",[arrimages objectAtIndex:indexPath.row]];
productCell.lblCostProduct.text=[NSString stringWithFormat:@"%@",[arrcost objectAtIndex:indexPath.section]];
productCell.imgProduct.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:str]]];
productCell.backgroundColor=[UIColor colorFromHexString:@"#232323"];
productCell.lblProductScreen.text=[NSString stringWithFormat:@"%@",[arrname objectAtIndex:indexPath.section]];
[productCell.btnClick addTarget:self action:@selector(touchup:) forControlEvents:UIControlEventTouchUpInside];
productCell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}
}
else
{
productSub.lblSubProduct.text=[NSString stringWithFormat:@"%@",[arrDescription objectAtIndex:indexPath.row-1]];
}
//
productCell.btnClick.backgroundColor=[UIColor colorFromHexString:@"#ffc400"];
productCell.btnClick.tag=indexPath.row;
return productCell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ if (indexPath.row == 0 && collapse != indexPath.section) {
collapse = (int)indexPath.section;
[tableView reloadData];
}
else
{
}
}
我搜索了许多下拉代码片段,但一切都不清楚或者它应该是第三方程序,任何不要只为我提供简单的下拉表列表编码。
答案 0 :(得分:1)
这里有几个问题:首先是“正确的”问题。这样做的方法是使用节标题的内置功能。此方法允许您创建并返回一个UIView,该UIView用作tableview中任何部分的标题:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
这意味着对于numberOfRowsInSection,你只返回一个值 - 该部分的行数,我想你说的是一行。您还有一个numberOfSections方法 - 如果只有一个部分,您将再次返回一个。
然后你的cellForRowAtIndexPath方法只关心设置你的单行,标题将在我提到的viewForHeaderInSection方法中设置。希望这能指出你正确的方向。