在我的应用程序中,我创建了一个tableList,并在tableList单元格中添加了一个按钮。
当我点击特定的单元格项目按钮时,它应该加载一个微调器列表。
问题是当我滚动表格列表并点击" 2"单元格项按钮。微调器列表正在第一个单元格上加载,当我点击" 1"微调器列表正在第四个单元格上加载。
如何解决此问题?
#import "ViewController2.h"
@interface ViewController2 ()
{
UITableView * MaintableView;
NSMutableArray * Mainarray;
}
@end
@implementation ViewController2
- (void)viewDidLoad {
[super viewDidLoad];
MaintableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
MaintableView.delegate = self;
MaintableView.dataSource = self;
MaintableView.rowHeight = UITableViewAutomaticDimension;
[MaintableView setShowsHorizontalScrollIndicator:NO];
[MaintableView setShowsVerticalScrollIndicator:NO];
[self.view addSubview:MaintableView];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [Mainarray objectAtIndex:indexPath.row];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(ButtonACtion:)
forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor cyanColor];
button.frame = CGRectMake(10.0, 20.0, 300.0, 20.0);
[cell.contentView addSubview:button];
return cell;
}
-(void)ButtonACtion :(id)sender{
//Here i am loading spinner list when tapped on button
}
@end
答案 0 :(得分:0)
这是因为细胞重用。
你可能想要一个你的单元格绑定到的模型和一个带有微调器的自定义单元格。
然后在cellForRow上,你得到你的数组的正确模型,并将cell.spinnerIsVisible设置为true或类似的东西。
看看这个SO问题: