Я играл с пользовательскими ячейками в UITableViewController, имея базовую ячейку (BaseCell - подкласс UITableViewCell), а затем подклассы BaseCell (Sub1Cell, Sub2Cell, оба подкласса BaseCell).
Поскольку подклассы имеют одни и те же функции, если я полностью настрою их в
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Я начинаю повторять код для каждого типа клеток. Есть ли хорошее место, и это хорошая практика, чтобы поместить общий код настройки внутри фактического пользовательского класса UITableViewCell? В настоящее время я написал простой метод установки:
- (void)setupCell
{
self.picture.layer.cornerRadius = 5.0f;
self.picture.layer.masksToBounds = YES;
self.picture.layer.borderColor = [[UIColor lightGrayColor] CGColor];
self.picture.layer.borderWidth = 1.0f;
}
Я только что звонил, когда создавал свою ячейку:
Sub1Cell *cell = [tableView dequeueReusableCellWithIdentifier:statusCellIdentifier];
[cell setupCell];
Есть ли способ, который я могу использовать, который будет вызываться автоматически? Я попытался - (void) prepareForReuse, но он, очевидно, вызывается не каждый раз, а только при повторном использовании ячеек.
Какой-нибудь совет о том, как лучше это сделать?
Edit:
Кажется, на самом деле звонят каждый раз, когда я звоню tableView:cellForRowAtIndexPath
. Я был немного смущен правильным способом создания пользовательской ячейки. Должен ли я делать что-то вроде:
Sub1Cell *cell = [tableview dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[Sub1Cell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
[cell setupCell];
}
Если я ничего не сделаю с переданным стилем, повлияет ли это на мою пользовательскую ячейку?