Пользовательский UITableViewCell (IB) отображается только в выбранном состоянии - PullRequest
8 голосов
/ 04 декабря 2011

Я сделал пользовательский UITableViewCell в Интерфейсном Разработчике (Раскадровка) и импортировал его в свой проект через #import CustomTableViewCell.h.

Все работает нормально, но ячейка загружается только в выбранном состоянии.

enter image description here

Я хочу, чтобы ячейка загружалась в каждой строке с помощью init.

P.S. Соединения слайдера и текстового поля работают нормально. Я также сделал все соединения 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;
}

P.S. Если я добавлю несколько кнопок и т. Д. Программным способом в вышеуказанном методе, он будет работать. Но я хочу спроектировать ряды в IB. Должно быть решение.

Ответы [ 2 ]

17 голосов
/ 05 декабря 2011

Ладно ... странные вещи здесь происходят;Мне пришлось добавить еще одну UILabel к моей CustomCell, которую я заполняю текстом.

ЗАКЛЮЧЕНИЕ

Заполнение стандартного UITableViewCell.textLabel.text, кажется, перезаписывает PrototypeCells.

... слишком много настроек болит.; -)

В любом случае, спасибо!:)

0 голосов
/ 05 декабря 2011

Предлагая вам не идти на 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...