草庐IT

iOS UICollectionView单选和多选

iOSEer冷箭 2023-03-28 原文

hello,iOS小伙伴们,上次研究了tableView,这次是UICollectionView,其实和tableVIew 一样的,只是方法不一样啦。我为大家总结了一下,虽然网上都能早到,但是都是零零闪闪的;几行代码搞定UICollectionView 单选和多选:

1.创建UICollectionView,不用多说了,但是有一个属性很重要 :_collection.allowsMultipleSelection = YES;

这是单选和多选的关键属性。 YES:是多选。NO或者不写:是单选。

2.在自定义cell里的方法中判断选中是哪一个图标就OK了。

-(void)setSelected:(BOOL)selected{

    [supersetSelected:selected];

    if(selected) {

        self.choseBtn.image= [UIImageimageNamed:@"xuan"];

    }else{

        self.choseBtn.image= [UIImageimageNamed:@"no_xuan"];

    }

}

3.当你多选取消货选中的时候在方法中移除/添加对应数组的元素就行了。

-(void)collectionView:(UICollectionView*)collectionViewdidSelectItemAtIndexPath:(NSIndexPath*)indexPath{


    //DF_OpenFileVC *vc = [[DF_OpenFileVC alloc]init];

    //[self pushVC:vc];

    NSLog(@"选中:%ld",indexPath.row);

}

-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{

    NSLog(@"取消选中:%ld",indexPath.row);

}


默认第几个选中方法:

if(indexPath.item==0) {

        //默认第一个选中

        [collectionViewselectItemAtIndexPath:indexPath animated:YES scrollPosition:(UICollectionViewScrollPositionNone)];

    }

4.全选或者取消全选。is_all:全选标识 1是全选 其他是取消全选;在全选按钮点击事件里对is_all进行赋值,然后刷新UICollectionView

下面的代码放在:

-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

if ([is_all isEqualToString:@"1"]) {

        [collectionView selectItemAtIndexPath:indexPath animated:YES scrollPosition:(UICollectionViewScrollPositionNone)];

    }else{

        [collectionView deselectItemAtIndexPath:indexPath animated:YES];

    }

5.全选按钮点击事件:

if ([is_all isEqualToString:@"1"]) {

        is_all=@"0";

    }else{

        is_all=@"1";

    }

    [self.collection reloadData];

6.补充一下,tableView 是同理。就能实现全选了。

有关iOS UICollectionView单选和多选的更多相关文章

  1. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  2. ruby-on-rails - 如何使用 grouped_collection_select 显示多选? - 2

    我正在使用以下代码来显示类别的TreeView选择框:grouped_collection_select(:categories,:category_id,Category.top_level,:children,:name,:id,:name,:include_blank=>true)如何更改它以允许多选?此外,是否可以让它显示复选框而不是选择框? 最佳答案 尝试grouped_collection_select(:categories,:category_id,Category.top_level,:children,:name

  3. ruby-on-rails - 使用 Rspec 选择单选按钮 - 2

    我目前正在使用RSpec编写一个表单测试,我想知道我将如何选择一个单选按钮,给出下面的表单:我希望我的测试看起来像这样:describe"withvalidoptionsselected"dobeforedo#CODETOSELECTARADIOBUTTONclick_button"SAVE"endend 最佳答案 describe"withvalidinfo"dobeforedochoose('True')click_button"CreateSetlist"end...end我必须为单选按钮分配一个ID才能正常工作额外引用文档:

  4. ruby-on-rails - Ruby on Rails 4 - simple_form 多选输入 - 2

    我有一个看起来像这样的simple_form输入字段:当我关闭multiple:true时,表单会提交为参数:particular_users选择的值,我可以在使用“raiseparams.inspect”进行调试时看到该值。但是,当我将multiple:true选项留在那里时,不会为参数:particular_users传递任何值。我做错了什么?编辑:我无法使用关联输入,因为:particular_users是一个虚拟属性,没有关系。我希望多选框传递其中的任何值,即使它们是任意的。 最佳答案 f.input:days,collec

  5. ruby-on-rails - Rails 上的单选按钮 - 2

    类似于这个问题:CheckboxesonRails在RubyonRails中制作与特定问题相关的单选按钮的正确方法是什么?目前我有:Theme:PlainDesertGreenCorporateFunky我还希望能够自动检查以前选择的项目(如果重新加载此表单)。我如何将参数加载到这些参数的默认值中? 最佳答案 如thispreviouspost,稍微扭曲一下:Theme:在哪里@theme=params[:theme] 关于ruby-on-rails-Rails上的单选按钮,我们在Sta

  6. javascript - jQuery/JavaScript - 隐藏/显示单选按钮上挂起的下拉框 - 2

    我想让它只在单击单选按钮(选项3)时显示下拉菜单,如果选择1或2,则将其隐藏。完成此操作的最佳方法是什么?我对JavaScript有一点经验,对jQuery几乎没有经验,但它似乎是可行的方法。感谢您的帮助,丹这是我目前拥有的HTML代码:Selection:Option1Option2Option3PleaseSelectFromtheList:TrueFalse 最佳答案 $(document).ready(function(){$("[name=select]").change(function(){//Wheneverther

  7. javascript - 多选复选框下拉 - 2

    我正在使用多选复选框下拉菜单。请看例子jsfiddle$(function(){$('#lstStates').multiselect({});});一旦您选择州,它就会显示TEXT值并用逗号连接,例如:NewJersey,NewYork,Ohio但我想要所选项目的VALUE如:NJ、NY、OH 最佳答案 您可以使用buttonText多选选项。http://jsfiddle.net/ejqngpn5/$('#lstStates').multiselect({buttonText:function(options,select){c

  8. javascript - Mootools 设置单选按钮已选中 - 2

    我有两个单选按钮我在加载时使用了mootoolwindow.addEvent('domready',function(){varchk="1";if(chk==1){$('edit-gender-0').set('checked',true);}elseif(chk==2){$('edit-gender-1').set('checked',true);}但它根本不起作用。任何帮助将不胜感激......以及任何其他没有if条件的简短解决方案。 最佳答案 您提供的代码工作正常-这是一个测试用例:http://jsfiddle.net/o

  9. javascript - Angularjs:选中单选按钮 - 2

    我正在尝试使用单选按钮在AngularJS中构建一个颜色配置器,一切似乎都在工作,数据绑定(bind)等等......但是我无法设置默认颜色单选按钮。正如我在文档中看到的那样,如果ng-model与radio值相同,则应该自动检查输入,但我不知道这是否仅适用于字符串而不适用于对象。这是HTML:{{color.name}}Preview:{{thing}}这是JS:functionThingControl($scope){$scope.colors=[{name:"White",hex:"#ffffff"},{name:"Black",hex:"#000000"}]$scope.thi

  10. javascript - 在从另一个多选 2 框中删除所选项目时,从多选 2 框中删除所选项目 - 2

    我有两个多选框,Box1选项是动态填充的,当我从这个选择框中选择任何选项时,它应该被添加到新的Box2中。此方案按要求工作。我面临的问题是。当我从Box1中删除任何选定的项目时,我可以将其从Box2中删除。但如果在Box2中选择了该项目,它仍然存在。例如:A、B、C是框1中的选定值,框2填充了A、B、C。如果我在Box2中选择B,c,并且如果我从Box1中删除B。我的Box2项目现在将是AC。但是B,C仍然会在Box2中保持选中状态。谁能帮我解决这个棘手的问题。$("#Box1").on("change",function(){varbox1List=$('#Box1').val();

随机推荐