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 真心寻找和我一样走在编程这个不归路的朋友  让我们互帮互助  嗯~~~痛并快乐着  哈哈

时间: 2024-12-11 12:20:14

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

iOS:一个Cell中设置另外一个Cell中的button

场景: 子类化Cell中有button,拥有选中式样,点击第一个Cell中的button后,Cell一中的button获得选中式样,但是当点击Cell二中的button时,Cell一中的button选中式样依然存在,即同时存在两个选中的button. 解决方法: 在子类化的Cell中,定义一个 static UIButton *selectedButton; 必须是 static 静态变量. 然后在点击方法中, - (void)headerButtonClickAction:(UIButton

iOS 在TableView的Cell之间设置空白间隔空间

1.设置section的数目,即是你有多少个cell - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 3; // in your case, there are 3 cells } 2.对于每个section返回一个cell - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)secti

获取cell中的button在整个屏幕上的位置

编写cell中得button点击事件 - (IBAction)showButtonClick:(id)sender { UIButton *button = (UIButton *)sender; UIWindow* window = [UIApplication sharedApplication].keyWindow; CGRect rect1 = [button convertRect:button.frame fromView:self.contentView];     //获取but

怎么让listview无法选中,listview中的button可以被选中

============问题描述============ 就是类似于QQ中聊天界面的哪种效果,listview的item没有选中效果,但是item中的textview可以被选中,这个怎么实现?? 求助... ============解决方案1============ 在布局文件中设置listview  android:listselector="@android:color/translate"让他在被点中的时候背景透明,这样,看起来的效果listview就无法选中 然后你点击butt

自定义cell中的button不响应点击事件

用xib自定义了一个cell(xib中拖动的直接是UIView,UIView中添加了Button),在xcode6.4的时候运行没问题,但是在xcode7发现按钮不能点击了.在Xcode7运行的时候,响应的是cell的didSelectedRow方法.解决方法,把xib自定义的cell中用的UIView改为UITableViewCell,把UIButton添加到cell的contentView里边就没有问题了.如果自定义的cell东西太多,可以有一个简单的方法,是把cell的contentVie

IOS给tableview的cell添加长按手势执行两次(UILongPressGestureRecognizer)

这里我们为tableview添加长按手势 UILongPressGestureRecognizer *longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)]; longPressGr.minimumPressDuration = 0.5f; longPressGr.numberOfTouchesRequired = 1; [_tableV

ubuntu中在Launcher上添加Android Studio的运行图标

运行命令创建desktop文件: sudo gedit /usr/share/applications/android_studio.desktop 打开窗口后输入以下内容,注意Exec和Icon要修改成自己系统下Android Studio的路径. [Desktop Entry]Type=ApplicationName=Android StudioExec="/opt/android-studio/bin/studio.sh" %fIcon=/opt/android-studio/b

iOS 选择的照片或者拍照的图片上添加日期水印

1..引入框架 #import "CLLocation+GPSDictionary.h"#import "NSDictionary+CLLocation.h" #import <AssetsLibrary/AssetsLibrary.h> 2. - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictio

Visual Studio中Radio Button组绑定变量方法(DDX_Radio方法)

需求描述:Visual Studio 创建的界面程序中又许多 Radio Button,希望这些所有的Radio Button统一绑定到一个变量上,这个变量一旦改变,Radio Button的选中状态会相应的改变. 实现方法:在DoDataExchange函数中: DDX_Radio(pDX, IDC_RADIO1, m_nRadio1);函数 具体方法(以3个Radio Button为例): 1.三个Radio Button,ID分别为:IDC_RADIO1, IDC_RADIO2, IDC_