iOS在动态表的顶部创建一个静态单元格

时间:2012-10-02 02:21:48

标签: ios xcode uitableview dynamic

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

这是我的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;

}

2 个答案:

答案 0 :(得分:1)

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

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

如果情况并非如此,那么我不明白你的问题,抱歉。

答案 1 :(得分: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];


            }
        }

    }

如果您有任何疑问,请与我联系!