自定义UITableViewCell无法正确显示

时间:2014-01-29 20:38:24

标签: ios cocoa-touch uitableview

我正在尝试在我的表视图中创建和使用自定义UITableView单元格,但它表现得很时髦。当我运行应用程序时,表格如下所示:

enter image description here

这是对的。但是,当我选择一个单元格时,视图会转移到:

enter image description here

据我所知,似乎在选择单元格后,单元格视图转移到默认的UITableViewCell布局,后面有我的星形图像......如果我继续选择每个单元格,我会得到这个:

enter image description here

正如您所看到的,当我再次选择单元格时,星形图像(我的自定义视图)仅显示(尽管是螺旋状的)。

我在尝试制作自定义单元格时经历了Apple's tutorial所以我知道我正在做我应该做的一切,但StackOverflow上没有其他人遇到过类似的问题......

这是我项目的代码。

TableView控制器标头

//
//  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标题

//
//  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实现

//
//  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

因此,我将非常感谢任何有关如何阻止观点如此愚蠢的建议。提前谢谢。

2 个答案:

答案 0 :(得分:0)

正如@ n​​00bProgrammer提出的问题评论中所提到的,我使用的textLabelimageView等名称与默认值相冲突,从而导致问题。

答案 1 :(得分:-1)

  • 在UItableview上布置自定义单元格
  • 选择自定义单元格并选择标识检查器。为新单元格添加自定义UitableViewCell类。
  • 选择属性检查器,并根据您的代码添加唯一标识符。
  • 将单元格上的控件连接到自定义类。
  • 加载tableview时,访问以下自定义单元格上的控件。

    MSCMoreOptionTableViewCell *cell = (MSCMoreOptionTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"cell"];
    
    
    if (cell == nil){
      cell = [[MSCMoreOptionTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
                                            reuseIdentifier:@"cell"];
    }
    
    
    cell.label_whatever.text = @"whatever";