iOS 在tableview的cell中的button上,添加選中狀態的解答

來源:互聯網
上載者:User

標籤:

大家都知道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上,添加選中狀態的解答

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.