Я делаю чат-приложение. В моем методе datasource я деактивирую ячейку и передаю Core Data Entity для ее инициализации.iOS custom UITableViewCell set UIButton title label text
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
Post *post = self.posts[indexPath.row];
AbstractPostCell *cell;
if ([post.type isEqualToString:@"text"]) {
cell = [tableView dequeueReusableCellWithIdentifier:CELL_POST_LIST_TEXT forIndexPath:indexPath];
}
else if ([post.type isEqualToString:@"image"]) {
cell = [tableView dequeueReusableCellWithIdentifier:CELL_POST_LIST_IMAGE forIndexPath:indexPath];
}
[cell setupWithPost:post];
return cell;
}
Вот setupWithPost метод:
- (void)setupWithPost:(Post *)post {
self.label.text = post.text;
self.datetimeLabel.text = [Format stringWithDatetime:post.datetime];
if ([DBHelper didLikePost:post likerID:[Helper currentUserID]]) {
self.likeButton.enabled = NO;
self.likeButton.titleLabel.alpha = 0.5;
self.likeButton.titleLabel.text = [NSString stringWithFormat:@"liked"];
}
else {
self.likeButton.enabled = YES;
self.likeButton.titleLabel.alpha = 1.0;
self.likeButton.titleLabel.text = [NSString stringWithFormat:@"like"];
}
}
кнопка метки правильны, когда я сначала введите ListViewController (TableViewController), но когда я перейти к следующему ViewController (DetailViewController), а затем вернуться обратно , все ярлыки кнопок становятся неустановленными (показывая текст, который я предварительно задал в раскадровке)
Интересно, что когда я прокручиваю вниз, а затем прокручиваю назад, все ярлыки кнопок снова становятся правильными. Я попытался prepareForReuse, но не работает
Примечание: это относится только к кнопке названия меток, нормальных меток (например, datetimeLabel) всегда корректно отображаются
- (void)prepareForReuse {
[super prepareForReuse];
self.label.text = @"";
self.datetimeLabel.text = @"";
self.likeButton.titleLabel.text = @"";
}
ничего себе! Я не знаю, почему я не могу просто установить свойство. – OMGPOP
такой же предмет в iOS8. При настройке свойства название кнопки будет меняться только иногда. – creality