我想在第一个原型单元格中有多行;第二个单元格必须是静态的。
我试过这样做,但我不能让第二个原型单元静止。我正在为单元格使用自定义类:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
DetailCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ss"];
if (cell.tag == 0)
return 8;
else if (cell.tag == 1)
return 1;
else
return 1;
}
只有第一个获得回报,我甚至看不到这两个按钮。我做错了什么?
答案 0 :(得分:1)
首先,除非您指定UITableView使用静态单元格,否则不能使用它们。并且您不能在单个tableview中混合原型单元格和静态单元格。
根据您的要求,您应该创建两个原型单元,而不是将一个单元作为静态单元格:
一个原型 - >为你的动态细胞
第二个原型 - >对于您的静态单元格
现在更改TableView数据源,如下所示:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// suppose [self.dynamicArray count] = 8
//Adding 1 for your static cell
return [self.dynamicArray count] + 1;
}
假设您要显示具有第二个Prototype(静态单元格表示)的最后一个单元格,然后将cellForRowAtIndexPath实现为:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row < [self.dynamicArray count] )
{
// normal dynamic logic here
NSString *cellIdentifier = @"DynamicCellID"
// dequeue and configure for [self.dynamicArray objectAtIndex:indexPath.row]
}
//this will be the last cell in which you want the second prototype cell acting as Static cell
else
{
// dequeue and configure my second prototype cell for indexPath.row
NSString *cellIdentifier = ... // id for one of my static cells
}
}
您可以使用相同的逻辑在heightForRowAtIndexPath方法中为两个原型单元实现不同的高度。
答案 1 :(得分:0)
我确实喜欢这个
static NSString * cellIdentifier;
if(indexPath.section == 8)
{
cellIdentifier = @"Intake";
}
else
cellIdentifier =@"CollegeDetail";
CollegeDetailCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[CollegeDetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}