在UITableView的最后一个单元格中添加一个按钮

时间:2018-05-22 09:49:40

标签: ios objective-c uitableview

我目前有2个UITableView来过滤掉2个类别,

我的类别是猫和狗,第一个UITableView处理猫,第二个UITableView处理狗。

我想要的是将猫和狗放入一个UITableview, 所以在UITableView中,第一部分是猫,第二部分是狗。我想要做的是在狗部分上面放一个按钮,它将用作两个类别的分隔符。

这是插图: enter image description here

顶部的2个细胞是猫 并且底部的一个单元格是一只狗,在这两个类别的中间应该有一个按钮作为分隔符。

1 个答案:

答案 0 :(得分:0)

试试这段代码。

@interface ViewController () <UITableViewDelegate, UITableViewDataSource> {
    NSArray *arrCat;
    NSArray *arrDog;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    arrCat = @[@"Cat 1", @"Cat 2", @"Cat 3", @"Cat 4", @"Cat 5"];
    arrDog = @[@"Dog 1", @"Dog 2", @"Dog3 ", @"Dog4 ", @"Dog 5"];
}

我以编程方式创建Header,您也可以通过创建xib来创建它。 像这样添加UITableView委托和DataSource。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (section == 0) {
        return arrCat.count;
    }
    return arrDog.count;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"TableViewCell";

    TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[[NSBundle mainBundle] loadNibNamed:cellIdentifier owner:self options:nil] objectAtIndex:0];
    }

    if (indexPath.section == 0) {
        cell.lblCategory.text = arrCat[indexPath.row];
    }
    else {
        cell.lblCategory.text = arrDog[indexPath.row];
    }
    return cell;
}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 60)];
    view.backgroundColor = [UIColor greenColor];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = view.frame;
    button.titleLabel.textAlignment = NSTextAlignmentCenter;
    button.titleLabel.textColor     = [UIColor blackColor];
    [view addSubview:button];

    if (section == 0) {
        [button setTitle:@"CAT" forState:UIControlStateNormal];
    }
    else {
        [button setTitle:@"DOG" forState:UIControlStateNormal];
    }
    return view;
}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 60.0;
}