Я пытаюсь выяснить, как разместить подпредставление для пользовательского UITableViewCell с центрированной позицией.Как указано в документации ( Настройка ячеек ), необходимо "... добавить подпредставления в свойство contentView объекта ячейки или ...".Как я заметил, он отлично работает с UITableViewStylePlain.В таблицах UITableViewStyleGrouped подпредставления нельзя размещать по центру.Они смещены в правую часть.
Если подпредставление добавляется непосредственно в UITableViewCell, это нормально для обоих режимов.То же самое верно, если я создаю подкласс UITableViewCell и загружаю ячейку из XIB.
К сожалению, я не могу загрузить скриншоты.Кто-нибудь может помочь решить проблему?Или я пропускаю что-то жизненно важное, поскольку смещение, по-видимому, соответствует измерению, которое будет сокращено в сгруппированной таблице.
Большое спасибо, Эл
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier1 = @"AddToCell";
static NSString *cellIdentifier2 = @"AddToContentView";
static NSString *aVeryLongLine = @"---------------------------------------------";
UITableViewCell *cell = nil;
if (indexPath.section == 0) {
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier1];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:cellIdentifier1] autorelease];
CGRect frame = cell.frame;
CGRect labelFrame = CGRectMake((frame.size.width-270)/2, (frame.size.height-40)/2, 270, 40);
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
label.textAlignment = UITextAlignmentCenter;
label.text = aVeryLongLine;
[cell addSubview:label];
[label release];
}
}
else if (indexPath.section == 1) {
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier2];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:cellIdentifier2] autorelease];
CGRect frame = cell.contentView.frame;
CGRect labelFrame = CGRectMake((frame.size.width-270)/2, (frame.size.height-40)/2, 270, 40);
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
label.textAlignment = UITextAlignmentCenter;
label.text = aVeryLongLine;
[cell.contentView addSubview:label];
[label release];
}
}
else {
}
return cell;
}