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 真心尋找和我一樣走在編程這個不歸路的朋友  讓我們互幫互助  嗯~~~痛並快樂着  哈哈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM