3

現在、私はiPhoneアプリケーションで作業しており、tableviewを使用してグループ化されたようなテーブルとそのスタイルを開発し、No.ofセクションは2のように、最初のセクションにはライトグレーの色のようなセパレーターの色があり、2番目のセクションにはclearColorのようなセパレーターの色があります。しかし、テーブル ビューをスクロールすると、1 番目のセクションで 2 番目のセクションがアクティブになることがあり、セパレータの色もクリアされます。これを修正するにはどうすればよいですか? 誰か助けてください

前もって感謝します

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

       if (indexPath.section == 0 && indexPath.row == 0) 
        {
            studentUpdateTable.separatorColor = [UIColor lightGrayColor];
            cell.backgroundColor = [UIColor whiteColor];
        }
       else if(indexPath.section == 1 && indexPath.row == 0)
       {
            studentUpdateTable.separatorColor = [UIColor clearColor];
            cell.backgroundColor = [UIColor clearColor];
       }
}
4

4 に答える 4

3
 tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

clearColor に設定しようとする代わりに、単に None に設定することができます

于 2012-06-29T05:52:15.410 に答える
2

これはうまくいきました

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

カスタム UIView (新しく割り当てられた UIView) をセルの背景ビューとして追加しました。

于 2012-06-30T04:47:28.483 に答える
0

これは、Interface builder 自体から実行できます。テーブル ビューの ATTRIBUTES INSPECTOR で、セパレータ スタイルを選択できます。コーディングはまったく必要ありません。

于 2012-06-29T06:16:30.517 に答える
0

あなたの問題は、スクロールするたびにセルを割り当てているようです.tableViewはセルを再利用するため、毎回割り当てる必要はありません. セルが nil の場合は、それを割り当てるだけです。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
   if (cell == nil) 
    {   
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
            reuseIdentifier:CellIdentifier] autorelease];
      cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

   if (indexPath.section == 0) 
   {
        studentUpdateTable.separatorColor = [UIColor lightGrayColor];
        cell.backgroundColor = [UIColor whiteColor];
   }
   else if(indexPath.section == 1)
   {
        studentUpdateTable.separatorColor = [UIColor clearColor];
        cell.backgroundColor = [UIColor clearColor];
   }
}
于 2012-08-11T13:14:03.040 に答える