Настроить цвет фона UITableView - PullRequest
0 голосов
/ 10 июня 2011

Проблема довольно простая, но довольно раздражающая. Я поместил UITableView в стиле группы в контроллер представления и сделал контроллер представителем таблицы и источником данных.

Когда я изменяю цвет фона таблицы, я использую:

UIColor *backColor = [UIColor colorWithRed:(15.0 / 255.0) green:(170.0 / 255.0) blue:(230.0 / 255.0) alpha: 0.75f];

[self.myTable setBackgroundColor:backColor];

и в методе tableView:tableView cellForRowAtIndexPath:indexPath я просто возвращаю простую ячейку:

static NSString *CellIdentifier = @"CellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];    
if (cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
 reuseIdentifier:moreCellIdentifier] autorelease];
}

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;

Но странно то, что в круглом углу каждой ячейки цвет просто не правильный, и я думаю, что это потому, что кадр одного из подпредставлений ячейки больше, чем ячейка, и я попытался сделать кадры подвидов небольшой, но все же не удалось. Есть идеи? Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Глядя на ваш код, мне не понятно, что это за строка:

[self.myTable setBackgroundColor:backColor];

относится к. Что такое myTable? а что такое я?

В любом случае, если вы используете UITableViewController для управления таблицей, вы должны изменить цвет фона следующим образом:

UIColor *backColor = [UIColor colorWithRed:(15.0 / 255.0) green:(170.0 / 255.0) blue:(230.0 / 255.0) alpha: 0.75f];
tableViewController.tableView.backgroundColor = backColor;

Если вы подкласс UITableViewController, лучшее место для выполнения этого кода - viewWillAppear (используя self вместо tableViewController.tableView.backgroundColor).

0 голосов
/ 10 июня 2011

Попробуйте использовать приведенный ниже код в функции tableView:tableView cellForRowAtIndexPath:indexPath.

   NSString *CellIdentifier = [[NSString  alloc] initWithFormat:@"CellIdentifier_%d_%d",indexPath.section,indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];    
    if (cell == nil){
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
     reuseIdentifier:moreCellIdentifier] autorelease];
    }
    [CellIdentifier  release];
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    return cell;
...