将按钮添加到UITableView单元格

时间:2015-02-10 09:30:18

标签: ios xcode uitableview uibutton

我正在尝试使用以下代码向我的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类?

当为阵列制作按钮时,框架设置如下:

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

2 个答案:

答案 0 :(得分:1)

添加元素的用法已经改变了一些。使用

[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];

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

答案 1 :(得分:0)

在你的 - (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];
}
相关问题