将按钮添加到 UITableView 单元格

Adding buttons to a UITableView cell

我正在尝试使用如下代码向我的 UITableView 单元格添加按钮:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    UIButton *button = self.buttons[0];
    [cell addSubview:button];

    return cell;
}

虽然没有显示该按钮。是否可以像这样向单元格添加按钮,或者我必须制作自定义 UITableViewCell class?

为数组制作按钮时,框架设置如下:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 70)]

添加元素的用法在某些时候发生了变化。使用

[cell.contentView addSubview:button];

如果已经添加了按钮,请不要忘记在之前进行验证:P

enum
{
    kButtonForA = 3333 // example
};

每个按钮集

button.tag = kButtonForA;

并使用它们

UIButton* btn = (UIButton *)[cell.contentView viewWithTag:kButtonForA];
if(!button)
    btn = self.buttons[i];

更新

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if(!self.buttons || [self.buttons count] == 0)
        return 0;
    return ...;
}

并在初始化数组后,使用

[tableView reloadData];

只是一种可能的方式,但是一种快速的方式

在你的 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

中试试这个
if ([cell.contentView viewWithTag:100] == nil) {
        button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(130,25, 40.0, 40.0);
        [button setTitle:@"+" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(aMethod:)
         forControlEvents:UIControlEventTouchUpInside];
        button.tag=100;
        [cell.contentView addSubview:button];
    }

然后执行操作

-(void)aMethod:(id)sender {
    NSInteger tag=[[sender superview] tag];
    //NSInteger value=[[self.qtt objectAtIndex:tag] integerValue]+1;
    //[self.qtt replaceObjectAtIndex:tag withObject:[@(value) stringValue]];
    //[self.mytableview reloadData];
}