在uitableviewcell中切换复选框图像

时间:2011-04-05 16:22:58

标签: ios iphone objective-c uitableview

我一直遇到将复选框图像添加到我的uitableviewcell并在已检查和未检查图像之间切换的问题。

我的简单代码是:

-(UITableViewCell *)tableView:(UITableView *)todoTable cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [self.todoTable dequeueReusableCellWithIdentifier: SimpleTableIdentifier];

if (!cell) { 
    cell = [[[UITableViewCell alloc]
             initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
}

cell.textLabel.text = [self.todoList objectAtIndex:indexPath.row]; 

return cell;
}

我尝试从here

添加解决方案

但我不知道我该把它放在哪里 interface ToggleImageControl : UIControl 我假设我把它放在与我的viewcontroller相同的头文件中?

我也尝试放入

ToggleImageControl *toggleControl = [[ToggleImageControl alloc] initWithFrame: <frame>];
toggleControl.tag = indexPath.row;  // for reference in notifications.
[cell.contentView addSubview: toggleControl];

进入上面的代码,我会得到ToggleImageControl引用错误,因为找不到接口的实现,我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:0)

在外观和行为上完成此类修改的最简单方法是编写自己的UITableViewCell子类。 UIButton实际上已切换通过selected属性内置的功能。

答案 1 :(得分:0)

KakoSquid是正确的。看起来您可能需要花一些时间来了解如何构建类和子类。

在你的情况下,听起来你在.h文件中为你的ToggleImageControl创建了一个新的接口部分,但你需要在.m文件中放置一个@implementation部分。

在许多情况下,您将为新类创建一个新文件集。 (.h&amp; .m文件)。在这种情况下,切换图像是您可以在其他项目中重复使用的东西,因此将其分解为自己的文件是有意义的。

但是,您可以根据需要将界面和实现添加到任何现有的苍蝇中。只需确保#import您正在使用它们的正确文件。