3

标题几乎说明了这一点。如何在动态表格顶部创建一个静态单元格?我希望能够将它用作我的桌子的图例。谢谢。

这是我的 tableView 代码:

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

static NSString *CellIdentifier = @"Cell";
JointCAD *currentCall = [[xmlParser calls] objectAtIndex:indexPath.row];
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"texture3.png"]];

TableViewCell *cell = (TableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
    cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    UIView *selectionView = [[UIView alloc] initWithFrame:CGRectMake(10, 7, 200, 65)];
    [selectionView setBackgroundColor: [UIColor clearColor]];
    cell.selectedBackgroundView = selectionView;
}

cell.callTypeLabel.text = currentCall.currentCallType;
cell.locationLabel.text = currentCall.location;
cell.unitsLabel.text = currentCall.units;
cell.stationLabel.text = [@"Station: " stringByAppendingString:currentCall.station];

if ([currentCall.callType isEqualToString:@"F"]) {
    cell.imageType = Fire;
}
else {
    cell.imageType = EMS;
}

if ([currentCall.county isEqualToString:@"W"]) {
    cell.imageType1 = Washington;
}
else {
    cell.imageType1 = Clackamas;
}

return cell;

}
4

2 回答 2

1

这看起来更像是您想要表格的标题,而不是静态单元格。如果我理解您的问题,您需要一个位于顶部且不移动的单元格,而动态部分中的其他单元格按正常方式上下滚动。

如果是这种情况,请使用返回标题视图及其大小的 tableviewdelegate 方法。

如果不是这种情况,那么我不明白你的问题,对不起。

于 2012-10-02T02:47:21.977 回答
1

我有一个类似的问题。我想要顶部的一部分动态单元格和底部的其他几个部分都是静态的。我使用了一种解决方法,其中我只是操纵了实际出现在顶部的单元格的数量,即使整个 tableView 只是一个静态 tableView。我知道我只会在表格的动态部分中使用最多 7 个单元格,因此只要您确保在动态部分中一次出现的最大单元格数为 <= 7(或任何数字您选择),一切都会顺利进行。这是你要做的:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
 int i;

switch(section) {
case 0:  
//Do a bunch of checking here on how many i actually need. Then, I will just return the required amount. 
//  As long as it is less than the number of cells I have statically placed in my .xib, everything works good.
     return i;
case 1:
     return 3;
case 2:
     return 1;
case 3:
     return 2;        
default:
     return 0;
}
}

然后在您的 willDisplayCell 中,自定义一个或多个动态部分:

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell*)currentCell forRowAtIndexPath:(NSIndexPath*)indexPath
{

  //  DB_NSLog((@"will display CELL"));

    if(indexPath.section==0){
        currentCell.textLabel.text=nil;
        for(int i=0;i<numberOfDevices;i++)
        {
            //get the names of connected devices from whatever they're array they are stored in
            //assign to respective labels
            //just using row indexes as tester for passing to the device specifiic settings page

            if(i==indexPath.row){
               //do whatever customization you want here

                currentCell.textLabel.text=[tempDic objectForKey:@"deviceName"];

               // currentCell.textLabel.textAlignment=UITextAlignmentCenter;
                currentCell.textLabel.font=[UIFont fontWithName:@"System" size:17];

                currentCell.textLabel.textColor=[UIColor colorWithRed:0 green:0.32156863 blue:0.54117647 alpha:1.0];


            }
        }

    }

如果您有任何问题,请告诉我!

于 2012-10-02T03:32:49.540 回答