0

我想在几个表格视图单元格中显示相同的附件视图,但它始终只显示在最后一行。因此,我创建了一个非常简单的测试项目,它的行为相同。这是测试项目:

标题:

#import <UIKit/UIKit.h>
@interface TVController : UITableViewController
@end  

执行:

#import "TVController.h"
@interface TVController ()
@property (nonatomic, strong) UIImageView *image;
@end

@implementation TVController
- (void)viewDidLoad{
    [super viewDidLoad];
    self.image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TestImage38x38"]];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 4;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell" forIndexPath:indexPath];
    cell.textLabel.text = @"test";
    cell.accessoryView = self.image;
    return cell;
}
@end

模拟器输出(复选标记是测试图像):

在此处输入图像描述

如您所见,图像仅显示在最后一行,尽管所有单元格的设置都相同。
我究竟做错了什么?

4

1 回答 1

1

您不能多次将同一视图实例添加到超级视图。一个视图只能有一个父视图。UIImageView您必须为每个单元格创建实例:

@property (nonatomic, strong) UIImage *image;
...
self.image = [UIImage imageNamed:@"TestImage38x38"];
...
cell.accessoryView = [[UIImageView alloc] initWithImage:self.image];
于 2014-08-05T08:01:04.283 回答