Я пытаюсь создать и использовать пользовательскую ячейку UITableView в своем представлении таблицы, но это действует на фанк. Когда я запускаю приложение таблица выглядит следующим образом:Пользовательский UITableViewCell отображается некорректно
Это правильно. Однако, когда я выбираю ячейку, вид переходит к следующему:
Насколько я могу судить, это, кажется, после выбора ячейки, что вид клеток переходит к компоновке UITableViewCell по умолчанию с моим изображением звезды за ним ... Если я продолжу, чтобы выбрать каждую клетку я получаю это:
Как вы можете видеть, изображение звезды (мой пользовательский вид) показывает только (хотя и чокнутые), когда я выбираю ячейку еще раз.
Я прошел через Apple's tutorial при попытке сделать пользовательскую ячейку, так что я знаю, что я делаю все, что я должен, но никто на StackOverflow не была аналогичная проблема ...
Вот код для моего проекта. Заголовок
//
// TableViewController.h
// CustomCell
//
// Created by Jordan Gardner on 1/29/14.
// Copyright (c) 2014 Jordan Gardner. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface TableViewController : UITableViewController
@end
TableView контроллер Реализация
//
// TableViewController.m
// CustomCell
//
// Created by Jordan Gardner on 1/29/14.
// Copyright (c) 2014 Jordan Gardner. All rights reserved.
//
#import "TableViewController.h"
#import "CustomCell.h"
@interface TableViewController()
@end
@implementation TableViewController
#pragma mark - Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *identifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
// Configure cell...
cell.textLabel.text = [NSString stringWithFormat:@"Item %@", [NSNumber numberWithInteger:indexPath.row]];
cell.imageView.image = [UIImage imageNamed:@"icon_folder.png"];
return cell;
}
@end
CustomCell Header реализация
//
// CustomCell.h
// CustomCell
//
// Created by Jordan Gardner on 1/29/14.
// Copyright (c) 2014 Jordan Gardner. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface CustomCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIButton *favoriteButton;
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@end
CustomCell
TableView Контроллер
//
// CustomCell.m
// CustomCell
//
// Created by Jordan Gardner on 1/29/14.
// Copyright (c) 2014 Jordan Gardner. All rights reserved.
//
#import "CustomCell.h"
@implementation CustomCell
- (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
}
@end
Итак, любые предложения относительно того, как я могу помешать представлениям действовать так жутко, будут очень признательны. Заранее спасибо.
Я предлагаю вам разные имена для ваших элементов в пользовательской ячейке, вместо использования стандартных 'textLabel' и' imageView'. Время от времени они конфликтуют. – n00bProgrammer
И деньги идут на @ n00bProgrammer – ngoue
@ n00bProgrammer может быть прав, я бы сначала сменил textLabel на что-то еще. Во-вторых, вы используете автозапуск? Если да, проверьте, что у вас нет двусмысленного макета. – ansible