В UITableViews (сгруппированных и простых) есть несколько сообщений о различных проблемах с фонами ячеек (пользовательских или стандартных), но я не могу найти упоминания об этой конкретной проблеме.
По сути, у меня есть UITableView со сгруппированным стилем.
Проблема: Я не могу получить в моих пользовательских ячейках ничего, кроме прозрачного фона.
Вот как выглядит мое табличное представление до того, как я реализую свои пользовательские ячейки (то есть это просто обычное сгруппированное табличное представление):
Стандартный, обычный сгруппированный Tableview. Отлично. Но я хочу нестандартные ячейки.
Итак, я построил собственную ячейку, которая выглядит следующим образом:
С этой иерархией:
А это фоновые метаданные для ячейки:
К сожалению, независимо от того, что я делаю, меняю ли фон на белый, прозрачный или даже на черный, ничего не меняет, мой вид таблицы все равно выглядит так:
(это фон табличного представления, между прочим, то есть эти ячейки теперь прозрачны).
И, конечно, я не могу решить эту проблему, изменив фон View , который я добавил в ячейку, потому что тогда все просто выглядит так (обратите внимание на отсутствие закругленных углов, и т.д.):
Что явно некрасиво и неприемлемо.
Как заставить клетки иметь нормальный белый фон, как у стандартных ячеек по умолчанию? Странно то, что для приложения на прошлой неделе я создал собственную ячейку, следуя точно той же процедуре, и эти фоны выглядели белыми просто отлично.
Что я здесь пропустил? Все, что мне нужно, чтобы мои пользовательские ячейки имели белый фон, который соответствует изогнутым верхним и нижним углам сгруппированного табличного представления. Я видел белый фон в других реализациях, поэтому я знаю, что это возможно с пользовательской ячейкой. Но что-то здесь не работает!
Я рад опубликовать любой код, но не уверен, что будет нужно / нужно. Вот мой метод cellForRowAtIndexPath (это просто базовая версия данных tableView: cellForRowAtIndexPath:):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForManagedObject:(NSManagedObject *)managedObject
{
static NSString *ReuseIdentifier = @"customSummaryCell";
CustomSummaryTableViewCell *cell = (CustomSummaryTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ReuseIdentifier];
if (cell == nil) {
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomSummaryTableViewCell" owner:nil options:nil];
for (id currentObject in nibObjects) {
if([currentObject isKindOfClass:[CustomSummaryTableViewCell class]])
{
cell = (CustomSummaryTableViewCell *)currentObject;
}
}
}
cell.leftLabel.text = @"Some data";
cell.rightLabel.text = @"Some Info";
return cell;
}
Мои файлы классов должны быть в основном неизменными, но вот они. Файл .h для моего пользовательского класса ячеек:
импорт
@interface CustomSummaryTableViewCell : UITableViewCell {
IBOutlet UIView *backgroundView;
IBOutlet UILabel *leftLabel;
IBOutlet UILabel *rightLabel;
}
@property (nonatomic, retain) IBOutlet UIView *backgroundView;
@property (nonatomic, retain) IBOutlet UILabel *leftLabel;
@property (nonatomic, retain) IBOutlet UILabel *rightLabel;
@end
И файл .m:
импорт "CustomSummaryTableViewCell.h"
@implementation CustomSummaryTableViewCell
@synthesize backgroundView;
@synthesize leftLabel;
@synthesize rightLabel;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)dealloc
{
[leftLabel release];
[rightLabel release];
[backgroundView release];
[super dealloc];
}
@end
Обратите внимание, что я изменил класс ячейки в xib на CustomSummaryTableViewCell
Любая помощь будет высоко ценится здесь, не знаю, в чем проблема, и это сводит меня с ума !!
Заранее спасибо.