我希望在多个表格视图单元格中显示相同的配件视图,但始终只显示在最后一行。因此,我创建了一个非常简单的测试项目,它的行为相同。这是测试项目:
标题:
#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
模拟器输出(复选标记是测试图像):
如您所见,尽管所有单元格设置相同,但图像仅显示在最后一行中 我做错了什么?
答案 0 :(得分:1)
You can't add the same instance of a view to a superview more than once. A view can only have one parent view.您必须为每个单元格创建UIImageView
的实例:
@property (nonatomic, strong) UIImage *image;
...
self.image = [UIImage imageNamed:@"TestImage38x38"];
...
cell.accessoryView = [[UIImageView alloc] initWithImage:self.image];