我正在尝试将按钮添加到我的表格单元格中,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
....
UIButton* buttonCheckbox = [UIButton buttonWithType:UIButtonTypeCustom];
buttonCheckbox.frame = CGRectMake(0, 177, 56, 26);
buttonCheckbox.backgroundColor = [UIColor redColor];
[buttonCheckbox addTarget:self action:@selector(actionFirst1) forControlEvents:UIControlEventTouchUpInside];
[buttonCheckbox setTitle:@"MyTitle" forState:UIControlStateNormal];
[cell addSubview:buttonCheckbox];
但是没有触发actionFirst1事件。如果我添加按钮[self.view addSubview:buttonCheckbox]
而不是[cell addSubview:buttonCheckbox]
,它可以正常工作。为什么呢?
感谢...
答案 0 :(得分:2)
您应该将此按钮添加到单元格的contentView
属性
[cell.contentView addSubview:buttonCheckbox];
事实上,UITableViewCell
中的所有自定义元素都应放在contentView
内作为此单元格元素(contentView
,accessorView
和image
)都被置于您的单元格所有元素的顶部。
检查this doc以获取有关自定义UITableviewCell
答案 1 :(得分:1)
您可以尝试以下代码,它可以帮助您:
if ([indexPath row] == 0)
{
UIButton *myButton = [[UISwitch alloc]initWithFrame:CGRectMake(x, y, width,
heigth)];
[cell addSubview:myButton];
cell.accessoryView = myButton;
[myButton addTarget:self action:@selector (actionFirst1)
forControlEvents:UIControlEventTouchUpInside];
}
此代码可以帮助您。请根据TableView的单元格设置框架。
答案 2 :(得分:1)
请查看是否足以将按钮添加为表格单元格的附件视图。在这种情况下,iOS框架会将按钮放置在适合您的单元格样式的位置(尽管您仍然需要给它一个大小)。以下是我的一个项目的例子:
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
myButton.frame = CGRectMake(0, 0, 100, 27); // only size matters
[myButton setTitle:@"Connect" forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(connect:) forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = myButton;
就是这样。您只需创建控件,确保它有一个大小,并将其设置为accessoryView。