iOS 在tableview的cell中的button上,添加选中状态的解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 在tableview的cell中的button上,添加选中状态的解答相关的知识,希望对你有一定的参考价值。

大家都知道tableview的复用当然不知道的话可以个我留言或者在网上找  在这我就不多说了;

 

技术分享

 

技术分享

红色就是选中状态,但是这时候我们会发现往下拉当cell消失后出来新的cell中的button也是选中状态。话不多说下面上解决方法的代码!

-(NSMutableArray *)boolArr{

//创建一个数组在这里数组中的NSNumber对象的下标是于 indexPath一一对应的这里我给他一百个根据自身的情况赋值

    if (_boolArr==nil) {

        NSMutableArray *arr = [NSMutableArray array];

        for (int i=0; i<100; i++) {

            NSNumber *aNumber = [NSNumber numberWithInteger:100];//在这里给aNumber赋值100  也就是数组中有100个,值为100的NSNumber的对象 ,在这里注意我是通过改变aNumber来标示button是否为选中状态。

            [arr addObject:aNumber];

        }

        _boolArr = arr;

    }

    return _boolArr;

}

//////////

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    //每区的行数

    return 100;

}

 

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

 

    TableViewCell1 *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];//初始化cell

    __block ViewController *vc = self;

    UIButton *but = (UIButton *)[cell viewWithTag:100];//得到cell的button

    //用block进行传值

    cell.block = ^(){

       // 取出cell的indexPath.row 对应bollArr下标的值

            NSNumber *bo= vc.boolArr[indexPath.row];

        // 更改bo的值用

            bo = [NSNumber numberWithInteger:1];

        //然后替换bollArr原先的值

            [vc.boolArr replaceObjectAtIndex:indexPath.row withObject:bo];

        //把but的选中状态变为yes

        but.selected = YES;

    };

    //用这个方法来判断but是否为选中状态

    [self addSelected:but addIndexPath:indexPath.row];

 

 

    

    

    return cell;

}

-(void)addSelected:(UIButton *)sender addIndexPath:(NSInteger)indexPath{

    //取出于cell的row对应的self.bollArr中的值

    NSNumber *bo= self.boolArr[indexPath];

    //然后转化为NSInteger类型

    NSInteger bollTge = bo.integerValue;

    //然后判断值是否被更改

    //100 没有被更改 no

    //1 已被修改 yes

    if (bollTge==100) {

        sender.selected = NO;

    }else{

        sender.selected = YES;

        

    }

}

因为时间原因我并没有写取消选中状态的方法 只需要写一个boll值进行判断就可以了 希望可以帮助大家 我也是ios的初学者

如果大家有什么更简便的方法 在这里真心求教

本人qq:627400364 真心寻找和我一样走在编程这个不归路的朋友  让我们互帮互助  嗯~~~痛并快乐着  哈哈

 

以上是关于iOS 在tableview的cell中的button上,添加选中状态的解答的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 自适应 Cell

iOS 怎么给tableview空白处添加点击事件而不影响cell中的一些按钮的事件

iOS 之(TableView中利用系统的 cell 设置 cell.textlabel 位置和大小)

iOS开发学习-如何优化tableview的使用

iOS8以后自动计算cell的高度

iOS tableview上的cell莫名消失