【发布时间】:2013-06-12 09:17:12
【问题描述】:
我创建了UITableView,其中包含 4 个具有动态行数的部分,我自定义了单元格并将按钮添加到非常单元格,按钮在不同的部分中重复使用。
我的代码:
- (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];
}
self.buttonMe = [UIButton buttonWithType:UIButtonTypeCustom];
[ self.buttonMe setFrame:CGRectMake(260.0, 7.0, 30.0, 30.0)];
self.buttonMe.tag=i;
if([[arrayCheckUnchek objectAtIndex:indexPath.row] isEqualToString:@"Uncheck"])
[ self.buttonMe setImage:[UIImage imageNamed:@"check.gif"] forState:UIControlStateNormal];
else
[ self.buttonMe setImage:[UIImage imageNamed:@"uncheck.jpg"] forState:UIControlStateNormal];
[ self.buttonMe addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview: self.buttonMe];
cell.textLabel.text=@"itsFine";
//"i", i created for assigning the unique tag for created button every time
i++;
return cell;
}
请给出正确的解决方案并说明其发生的原因 谢谢
【问题讨论】:
-
您还没有自定义单元格。
ButtonMe应该是自定义单元格的一部分,cell.buttonMe是应该改变的,你正在做的是重用你的主类的实例变量。 -
我添加了自定义按钮作为 cell.contentView 的子视图,
-
请清除你的行你正在做的是重用你的主类的实例变量
-
self.buttonMe 每次都被添加到单元格中。您可以做的是创建一个自定义单元格并拥有一个变量 buttonMe 并通过 cell.buttonMe 访问它。这样您就不会遇到细胞重复使用的问题。
-
请 praveen 帮助我,如何实现这一点,请请
标签: iphone uitableview uibutton cell reusability