Пользовательский UITableViewCell (IB) отображается только в выбранном состоянии
Я сделал заказ UITableViewCell
в Интерфейсном Разработчике (Раскадровка) и импортировал его в мой проект через #import CustomTableViewCell.h
,
Все работает нормально, но ячейка загружается только в выбранном состоянии.
Я хочу, чтобы ячейка была загружена в каждой строке с помощью init.
PS Ползунок и текстовое поле соединения работают нормально. Я также сделал все соединения IB.
CustomTableViewCell.m
#import "CustomTableViewCell.h"
@implementation CustomTableViewCell
@synthesize sliderLabel, slider;
- (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
}
- (IBAction)getSliderValuesWithValue:(UISlider *)sender
{
sliderLabel.text = [NSString stringWithFormat:@"%i / 100", (int) roundf(sender.value)];
}
@end
Further Code
- (CustomTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Kriterium";
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
cell.textLabel.text = [NSString stringWithFormat:@"%@", [listOfItems objectAtIndex:indexPath.row]];
return cell;
}
PS Если я добавлю несколько кнопок и т. Д. Программным способом, описанным выше, это сработает. Но я хочу спроектировать ряды в IB. Должно быть решение.
2 ответа
Хорошо... странные вещи происходят здесь...;-) Проблема была в этой строке:
cell.textLabel.text = [NSString stringWithFormat:@"%@", [listOfItems objectAtIndex:indexPath.row]];
Оставив это, сделали свое дело. Я должен был добавить еще UILabel
на мой CustomCell, который я заполняю с текстом.
ЗАКЛЮЧЕНИЕ
Заполнение стандарта UITableViewCell.textLabel.text
кажется, переписать PrototypeCells.
... слишком много настроек больно.;-)
Спасибо, в любом случае!:)
Предлагаю вам не идти на IB. Просто определите эти элементы управления как свойство и в вашем методе init - initWithStyle(файл CustomTableViewCell.m) инициализируйте UISlider с его свойством по умолчанию:
UISlider *tempSlider = [[UISlider alloc] initWithFrame:frame];
tempSlider.selected = NO;
//define other properties as well
self.slider = tempSlider;
[self addSubview:self.slider];
[tempSlider release];
Кроме того, вы также можете установить стиль выбора ячеек на none.
cell.selectionStyle = UITableViewCellSelectionStyleNone;