3

タイトルはほとんどそれを言います。動的テーブルの上部に 1 つの静的セルを作成するにはどうすればよいですか? テーブルの凡例として使用できるようにしたいです。ありがとう。

ここに私の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 に答える