У меня есть UITableView, в котором, конечно, я использую некоторые UITableViewCells. Теперь в некоторых ячейках есть значок / изображение, которое я хочу отобразить перед текстом, а в некоторых других нет. Я не создавал UITableViewCells в Интерфейсном Разработчике, просто использовал материал по умолчанию:
// Настройка внешнего вида ячеек табличного представления.
- (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];
}
// Set up the cell...
switch (indexPath.row) {
case 0:
cell.textLabel.text = @"Nearby";
cell.imageView.image = [UIImage imageNamed:@"marker.png"];
break;
case 1:
cell.textLabel.text = @"Bookmarked";
cell.imageView.image = [UIImage imageNamed:@"bookmark.png"];
break;
case 2:
cell.textLabel.text = @"Other";
break;
default:
break;
}
return cell;
}
Кажется, это работает отлично, но у меня есть небольшая проблема с шириной cell.imageView. Иконки, которые я использую, имеют разную ширину. У некоторых 21 пиксель, у других 25 пикселей, а в некоторых приведениях у меня вообще нет иконки.
В результате текст textLabel будет отображаться в разных позициях (в зависимости от ширины imageView).
Теперь мой вопрос: могу ли я добавить какой-нибудь код / оператор, который будет гарантировать, что imageView моей ячейки всегда имеет ширину 30 пикселей? Даже если для этого изображения нет изображения?
Может ли это быть сделано программно или мне придется создать пользовательскую ячейку в InterfaceBuilder или даже создать собственного потомка UITableViewCell.
Любая информация по этой теме приветствуется.
С уважением,
Stefaan