首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更改CollectionView单元的状态

更改CollectionView单元的状态
EN

Stack Overflow用户
提问于 2015-03-17 08:03:13
回答 1查看 671关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{

    //NSLog(@"enter category cell");

    CategoryViewCell* cell = (CategoryViewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];

    [cell.imgCat setImage:[UIImage imageNamed:[categoryImages objectAtIndex:indexPath.row]]];
    [cell.labelCatName setText:[[NSString stringWithFormat:@"%@", [catName objectAtIndex:indexPath.row]] capitalizedString]];
    if([categories[[NSString stringWithFormat:@"%d",(int)indexPath.row]] isEqual:@YES]) {
        //NSLog(@"set border");

        cell.layer.borderColor = [UIColor redColor].CGColor;
        cell.layer.borderWidth = 3;

    }
    return cell;
}

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    CategoryViewCell* cell = (CategoryViewCell*)[collectionView cellForItemAtIndexPath:indexPath];
    cell.layer.borderWidth = 3;
    cell.layer.borderColor = [UIColor redColor].CGColor;

    //NSLog(@"%i", (int)indexPath.item);
    categories[[NSString stringWithFormat:@"%i", (int)indexPath.item]] = @YES;



}

-(void) collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath {
    CategoryViewCell* cell = (CategoryViewCell*)[collectionView cellForItemAtIndexPath:indexPath];
    cell.layer.borderColor = [UIColor clearColor].CGColor;

    categories[[NSString stringWithFormat:@"%i", (int)indexPath.item]] = @NO;
}

问题:上面的代码将向您显示一个collectionView,其中包含默认选中的单元格。但是,这些选定单元格的状态不会被选中。所以我必须点击两次才能取消选择它们,因为第一次点击是为了选择它们,第二次点击是为了取消选择它们。

我已经尝试为单元格设置选定,但它也不起作用。每当用户选择一个单元格时,该单元格都会有一个红色边框,当用户取消选择该单元格时,该单元格将显示clearColor。

我试过了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cell.selected = YES;

但是这会永久地给collectionView单元格一个红色边框。

并将其添加到cellForItemAtIndexPath方法中仍然不起作用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self collectionView:collectionView didSelectItemAtIndexPath:indexPath];

CategoryViewCell.m

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void) setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected];
    //NSLog(@"Pass Select Animated");
    if (selected) {
        self.flagHighlight = NO;
        self.selected = NO;
        self.layer.borderColor = [UIColor clearColor].CGColor;
        self.layer.borderWidth = 3;
    } else {
        self.flagHighlight = YES;
        self.selected = YES;
        self.layer.borderColor = [UIColor redColor].CGColor;
        self.layer.borderWidth = 3;
    }
}

如何在以编程方式加载视图时预选单元格?或者更好的方法是改变被选中的单元格的状态。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-17 12:10:02

最终回答了我自己的问题。

所以我使用[collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone];

在cellForItemAtIndexPath中。

很好地服务于这个目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29093973

复制
相关文章
Qt状态更改事件
可以捕获的状态有: QEvent::ToolBarChange (在macOS上工具栏按钮被切换) QEvent::ActivationChange (顶级窗口激活状态已更改) QEvent::EnabledChange (窗口的启用状态已更改) QEvent::FontChange (窗口的字体已更改) QEvent::StyleChange (窗口的样式已更改) QEvent::PaletteChange (窗口的调色板已更改) QEvent::WindowTitleChange (窗口的标题已更改) QEvent::IconTextChange (窗口的图标文本已更改(不赞成使用)) QEvent::ModifiedChange (窗口的修改状态已更改) QEvent::MouseTrackingChange (鼠标跟踪状态已更改) QEvent::ParentChange (窗口的父类已更改) QEvent::WindowStateChange (窗口的状态"最小化、最大化或全屏"已更改) QEvent::LanguageChange (应用程序翻译已更改) QEvent::LocaleChange (系统区域设置已更改) QEvent::LayoutDirectionChange (默认应用程序布局方向已更改) QEvent::ReadOnlyChange (窗口的只读模式已更改)
Qt君
2023/03/17
1.1K0
Qt状态更改事件
黑马瑞吉外卖之售卖状态的更改
基本上在套餐这里的模块我们只剩下简单的对售卖状态更改了。停售,启售,批量停售,批量启售。
兰舟千帆
2022/10/04
7260
黑马瑞吉外卖之售卖状态的更改
CollectionView stortBoard headview bug
2.拖不出xib上的控件做属性 报错信息如下: outlets connot  be connected to repeating content
星宇大前端
2019/01/15
4440
该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改。
ObservableCollection类型---该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改。
静谧的小码农
2023/10/16
5030
Android系统更改状态栏字体颜色
原文地址:http://blog.isming.me/2016/01/09/chang-android-statusbar-text-color/,转载请注明出处。 随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了。因此本文提供一些解决方案,可以是MIUI6+,Flyme4+
非著名程序员
2018/02/02
2.5K0
LayUI switch 开关监听 获取属性值、更改状态
背景 今天在设计页面时,想使用一下 LayUI 的 switch 控件,在需要更改状态的时候进行 ajax请求传输 需要获取其中的自定义属性值,同时根据服务器返回数据进行状态的更改 通过参考文档及网友
泥豆芽儿 MT
2019/03/20
19.9K0
LayUI switch 开关监听 获取属性值、更改状态
Laravel5.8 状态值无刷新更改
本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接
Meng小羽
2019/12/24
1.2K0
网页切出当前标签页时更改标题状态
浏览器里当用户切入或切出当前标签页时,会触发visibilitychange事件(IE10以下浏览器不兼容)。 这个事件能很好的解决页面在不可见的情况下,通过状态判断针对性减少网络请求、服务器压力等。 废话不多说,直接上js
小唐同学.
2022/02/23
1.9K0
FileSystemWatcher类监控文件的更改状态并且实时备份文件
首先这是我自己在一个任务需求里面所要用到的,大致的代码如下:我把监视文件和备份文件的方法封装到一个WatcherAndBackup
ryzenWzd
2022/05/07
8830
excel如何合并相同项单元格内容_不能对合并单元格部分更改
工作中可能想要快速的实现将Excel相同项目单元格合并,下面就跟大家简单地介绍一下。
全栈程序员站长
2022/11/17
1.9K0
excel如何合并相同项单元格内容_不能对合并单元格部分更改
iOS小经验:UITableView&UICollectionView设置单元格的默认选中状态
一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。
陈满iOS
2018/10/09
3.6K0
如何高效撤销Git管理的文件在各种状态下的更改
  企业中我们一般采用分布式版本管理工具git来进行版本管理,在团队协作的过程中,我们难免会遇到误操作,需要撤销更改的情况,那么我们怎么高效的进行撤销修改呢?对于还未提交到暂存区的代码怎么高效撤销更改呢?对于已经提交到暂存区的代码,怎么取消add操作?对于已经提交到本地仓库,还没有提交到远程仓库的代码,怎么进行高效撤销更改呢?还有对于已经提交到远程仓库的代码,如何进行高效的撤销更改呢?那我们本文就来一一解决这些棘手的问题!
阿豪聊干货
2018/08/09
2K0
常用功能加载宏——筛选状态的单元格数值粘贴
如果能有一个在筛选状态下也可以使用的数值粘贴功能就方便多了,让我们用VBA来实现它,效果:
xyj
2020/07/28
1.1K0
常用功能加载宏——筛选状态的单元格数值粘贴
【IOS开发基础系列】UICollectionView专题
        UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。
江中散人_Jun
2023/10/16
9470
【IOS开发基础系列】UICollectionView专题
WPF 已知问题 清空 CollectionView 的 SortDescriptions 可能抛出空异常
本文记录一个 WPF 的已知问题,在通过 CollectionViewSource 获取到 CollectionView 之后,如果 CollectionViewSource 对象已被 GC 回收,将可能在调用 CollectionView 的 SortDescriptions 属性进行清空或者移除项时,也就是使用 SortDescriptionCollection 类型的清空或者移除项时,在 WPF 框架里面抛出空异常
林德熙
2023/04/07
6630
细述Kubernetes和Docker容器的存储方式
#####集合视图的作用 集合视图是为了增强网格视图开发而在IOS6中开放的集合视图API。 #####集合视图的组成 集合视图有4个重要的组成部分,分别为:
全栈程序员站长
2021/07/07
1.5K0
iOS UICollectionView的用法
UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
码客说
2019/10/22
1.3K0
使用xib自定义UIcollectionViewCell控件为nil的问题
该怎么说呢,这是一个很坑的事情,今天在完成一个界面的时候,用了xib来自定义UICollectionViewCell。其实这是一个很简单的过程,关键代码也就包括下面的两部分: //注册集合视图单元格 UINib *nib = [UINib nibWithNibName:@"MyCollectionCell" bundle: [NSBundle mainBundle]]; [_collectionView registerNib:nib fo
梧雨北辰
2018/04/24
1.3K0
UI篇-UICollectionView 补充
http://blog.csdn.net/xiyouios/article/details/50191101
進无尽
2018/09/12
1.5K0
UI篇-UICollectionView 补充
更改网页的标签
以Safari浏览器、百度主页为例子 先上效果对比图: 效果图.png 原图.png 好了,现在开始搞过程: ️:打开Safari浏览器,进入www.baidu.com;然后鼠标右键选择-检查元素
且行且珍惜_iOS
2018/05/22
1.3K0

相似问题

取消选择collectionView中的所有单元格,同时更改可视状态

15

更改collectionView单元格的大小

17

在滚动collectionView单元格时更改collectionView外部的图像

10

CollectionView滚动更改选定的单元格

20

使用动画更改collectionView单元格的高度

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文