首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

选中状态已清除deleteItemsAtIndexPaths上UICollectionViewCell中的UIButton

在UICollectionViewCell中删除选中状态的UIButton,可以通过以下步骤实现:

  1. 首先,你需要在UICollectionViewCell的类中创建一个UIButton的实例变量,并将其添加到cell的contentView上。你可以使用UICollectionViewCell的initWithFrame方法来初始化UIButton,并设置其样式、位置和其他属性。
  2. 在UICollectionViewDelegate的方法中,当用户选择或取消选择一个cell时,你可以通过设置UIButton的选中状态来更新UI。你可以使用UICollectionViewDelegate的didSelectItemAtIndexPath和didDeselectItemAtIndexPath方法来监听cell的选择状态变化。
  3. 在UICollectionViewCell的类中,你需要实现一个方法来处理UIButton的点击事件。你可以使用addTarget方法将UIButton与该方法关联起来,并在方法中更新UIButton的选中状态。
  4. 当用户点击UIButton时,你可以通过调用UICollectionView的reloadItemsAtIndexPaths方法来刷新cell的UI。这将触发UICollectionViewDelegate的方法,从而更新UIButton的选中状态。

以下是一个示例代码,演示了如何在UICollectionViewCell中删除选中状态的UIButton:

代码语言:swift
复制
import UIKit

class CustomCollectionViewCell: UICollectionViewCell {
    var button: UIButton!
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        
        // 创建UIButton实例
        button = UIButton(type: .system)
        button.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
        button.setTitle("Button", for: .normal)
        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
        
        // 将UIButton添加到cell的contentView上
        contentView.addSubview(button)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    @objc func buttonTapped() {
        // 处理UIButton的点击事件
        button.isSelected = !button.isSelected
        
        // 刷新cell的UI
        if let collectionView = superview as? UICollectionView,
           let indexPath = collectionView.indexPath(for: self) {
            collectionView.reloadItems(at: [indexPath])
        }
    }
}

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
    var collectionView: UICollectionView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建UICollectionView实例
        let layout = UICollectionViewFlowLayout()
        collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout)
        collectionView.dataSource = self
        collectionView.delegate = self
        collectionView.register(CustomCollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
        view.addSubview(collectionView)
    }
    
    // UICollectionViewDataSource方法
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 10
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CustomCollectionViewCell
        
        // 根据UIButton的选中状态更新UI
        if cell.button.isSelected {
            cell.button.backgroundColor = .green
        } else {
            cell.button.backgroundColor = .red
        }
        
        return cell
    }
    
    // UICollectionViewDelegate方法
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        // 处理cell的选择事件
    }
    
    func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
        // 处理cell的取消选择事件
    }
}

这是一个简单的示例,演示了如何在UICollectionViewCell中删除选中状态的UIButton。你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView

cell特性外,CollectionViewItem大小和位置可以自由定义 4、通过layout布局回调代理方法,可以动态定制每个item大小和collection大体布局属性 5、更加强大一点...        在了解UICollectionView更多属性前,我们先来使用其进行一个最简单流布局试试看,在controllerviewDidLoad添加如下代码:     //创建一个layout...,因此这里统一了从复用池中获取cell方法,没有再提供可以返回nil方式,并且在UICollectionView回调代理,只能使用从复用池中获取cell方式进行cell返回,其他方式会崩溃,...) BOOL allowsSelection; //设置是否允许多选 默认no @property (nonatomic) BOOL allowsMultipleSelection; //获取所有选中...item位置信息 - (nullable NSArray *)indexPathsForSelectedItems;  //设置选中某一item,并使视图滑动到相应位置

2.9K20
  • Swift-低仿搜狐新闻标签页效果

    在ViewController里自定义了两个数组,我频道(myChannels)和更多频道(moreChannels) 在点击+跳转到频道管理页面的点击方法里面有一个回调方法,即:将选中频道、以及自定义后频道回传到此页面...,在将选中Item移动到目标的Item时候,我方法处理不是太好。...现在还存在一些不尽人意地方: 长按之后是变成编辑状态,不像《头条》或者《搜狐》那样长按之后变成编辑也可以继续拖动。 选中Item没有放大效果,确实影响用户体验。...我频道里面第一个Item本意我是不希望他可以被移动,但是如果将其它Item移动到第一个位置依然可以,背离了我初衷。...仔细观察了一下,《头条》或者《搜狐》更多频道里,如果将我频道Item移动到更多频道里,《搜狐》只是放在更多频道里面的最后一个位置,《头条》是放在第一个位置,并没有放哪里都行,我突然又感觉我自己又有点多此一举了

    1.9K40

    【IOS开发基础系列】UICollectionView专题

    • cell选中状态     • 可以支持长按后菜单         关于用户交互,UICollectionView也做了改进。...cell         状态控制要比以前灵活一些,对应高亮和选中状态分别由highlighted和selected两个属性表示。...,用作cell平时背景     • 再其是selectedBackgroundView,是cell被选中背景     • 最后是一个contentView,自定义内容应被加在这个view         ...这次Apple给我们带来好康是被选中cell自动变化,所有的cell子view,也包括contentView子view,在当cell被选中时,会自动去查找view是否有被选中状态改变。...重用         UICollectionViewCell其实只实例化了能应付一屏显示范围对象实例,而在cellForItemAtIndexPath方法重复更新此实例业务数据来达到显示不同Cell

    73430

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    普通 : UI 控件默认状态; -- 高亮 : UI 控件突出显示, 处于高亮状态; 手放在按钮处于高亮状态; -- 禁用 : UI 控件关闭后, 处于禁用状态; 禁用状态控件不可操作, 禁用操作在...Interface Builder 取消 Enable 复选框; -- 选中 : 用于标识控件启用 或 被选中, 选中状态可以不断持续, 高亮状态只在 按下才显示; (4) UI 控件状态 UI...文本, 图片, 格式; -- Default : 默认状态; -- Highlighted : 用户碰触时高亮状态; -- Selected : 被选中状态; -- Disabled : 禁用状态...; 为不同状态 UIButton 设置样式 :  -- "setTittle : forState :" 方法 : UIButton 不同状态 设置不同标题; -- "setTittleColor...: forState :" 方法 : UIButton 不同状态设置不同标题颜色; -- "setTittleShadowColor : forState :" 方法 : UIButton 不同状态

    6.8K20

    当iOS遇见UI

    当然,像UIButton之类按钮控件,除了在活动模式下激发方法之外,它并没有太多其他功能。...普通:普通状态是所有控件默认状态。 高亮:当UI控件需要突出显示时,它处于高亮状态。对按钮来说,当用户手指放在按钮时,它才处于高亮状态。 禁用:当UI控件被关闭时,它处于禁用状态。...禁用状态UI控件是不可操作,如果要禁用某个控件,则可以在Interface Builder取消选中Enabled复选框,或将控件enabled属性设为NO。...选中选中状态通常用于标识该控件启用或被选中。很多时候,选中状态与高亮状态比较相似,但UI控件可以在用户不再使用它时继续保持选中状态。...假如向界面设计文件添加了一个按钮(UIButton),由于UIButton继承了UIControl基类,因此,可以在Xcode属性检查器面板中看到如图1所示UIControl属性设置面板。

    74610

    跟iOS UI捉迷藏(如何获取用户点击行为控件title)

    1.如何获取用户控件点击行为 事实,由于获取“所见所得”点击view行为,所以,思路上应该是对uiview或者及其子类得某个事件方法hook到,这样触发点击(广义是触摸)行为后,可以根据发送事件确定点击...UI控件类型,进一步获取对应title 事实,具体流程比较复杂,如下图: 这里有篇文章讲比较详细: https://www.jianshu.com/p/ae6466d3e89e 里面不仅讲了整个流程...先从简单开始 一阶获取控件:UIButton 响应uiview是UIButton,即用户点击是按钮,则立马获取(即一阶获取) NSString * title = [[button titleLabel...4层,再向下找1层,才能找到ULTableViewLabel,所以为五阶获取 平行获取控件:UINavigationControllerbackButton 这是个比较有意思空间,点击UICollectionViewCell...这样就无法确定是哪个UISegment 换条路 通过打印UISegmentedControl方法列表,我们找到了一个selectedSegmentIndex 这个对应内容为最后一个被选中UISegment

    1.4K10

    iOS流布局UICollectionView系列二——UICollectionView代理方法

    iOS流布局UICollectionView系列二——UICollectionView代理方法 一、引言         在上一篇博客,介绍了最基本UICollectionView使用和其中我们常用属性和方法...,也介绍了瀑布流布局过程与思路,这篇博客是一篇补充,来讨论关于UICollectionView代理方法使用。...,所有方法都是可选实现: 是否允许某个Item高亮,返回NO,则不能进入高亮状态 - (BOOL)collectionView:(UICollectionView *)collectionView shouldHighlightItemAtIndexPath...:(NSIndexPath *)indexPath; 结束高亮状态时触发方法 - (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath...collectionView:(UICollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath; 长按菜单可以触发一下类复制粘贴方法

    2K20

    【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    显示是一个正方形 界面 , 需要将其设置为 一个 手机形状 UI 界面 ; 2.设置成 4.7 寸屏幕大小 : ① 选中 ViewController 图标 , ② 设置 右侧 属性查看器...)generateView { } ---- ( 2 ) 修改按钮文字 ( ① 双击控件 | ② 修改 Tittle 属性 ) 修改按钮文字 : 1.方法1 : 点击选中 UIButton 控件, 然后再右侧属性查看器...设置 文字 , 这里需要根据不同状态设置显示文字 , 这里只设置 UIControlStateNormal 状态文字 [button setTitle:@"生成按钮" forState:UIControlStateNormal...代码区域 , 在弹出对话框 输入方法名称 , 选择控件类型 , 选择触发操作 , 选择传入参数 即可生成点击方法 ; // 一张 图片 - (IBAction)lastImage:(UIButton...) UIButton 启用 禁用 ( ① enabled 属性 YES NO ) UIButton 启用 禁用 : 1.enabled 属性 ( 可视化修改 ) : 在 UIButton 属性查看器

    3.9K40

    iOS_自定义UITabBarController标签视图控制器

    ,即点击状态): @interface MyTabBarController () //之前选中按钮 @property(nonatomic, retain) UIButton *selectedBtn...; @end 然后开始写自己想要东西了,在viewDidLoad: (1)删除继承父类而来tabBar,自定义自己想要视图,其frame为原来tabBarframe。...:) forControlEvents:UIControlEventTouchUpInside]; } } (4)然后实现按钮点击事件clickBtn:实现按钮和其下面标题 选择和未选择状态切换...;也需要实现视图跳转: #pragma mark -- 自定义tabBar按钮点击事件 -(void)clickBtn:(UIButton *)sender { //设置上一个按钮...viewWithTag:self.selectedBtn.tag + 100]; titleFormer.textColor = [UIColor grayColor]; //设置选中状态

    55830

    【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

    : 选中界面 View Controller 元素, 然后去 属性面板 对应 类面板, 其中 Class 属性就是设置其对应 代码类, 这里是 ViewController.h 和 ViewController.m..., 拖到制定控件处, 这样 ViewController.h 属性与 Main.storyboard 控件建立起了关联; ① 属性左侧圆圈图示 : 第一张是鼠标没有移动到圆圈, 第二章是鼠标移动到了圆圈...Config 属性可以配置 五种状态, 其中 Highlighted 状态就是按钮按下状态, 每个状态都可以设置一套单独 Tittle Background 等属性, 如下图属性列表;...: 为按钮 Default 和 Highlighted 两个状态设置不同图片 ; 3.绑定方法 : 将两个按钮同时绑定到同一个方法 ; 4.设置 tag : 给 两个按钮分别设置 tag...标签 , 根据 tag 执行不同逻辑 ; 控件关联方法 , 是否传入 UIButton 控件 , 在于是否需要获取 按钮 相关资源 , ---- ( 6 ) 关闭自动布局 ( ① 选中 ViewController

    4.9K30

    iOS小经验:UITableView&UICollectionView设置单元格默认选中状态

    场景需求 一个表格视图(或者宫格视图),当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。 2. 一个思路 通过实现选中和非选择代理,以在适当时机进行UI更新操作。 3....UITableView 3.1 通过屏幕点击改变选中状态回调给代理 //选中 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...// animate between regular and selected state 注意是: 这种方法改变cell选中状态时,当通过屏幕点击选中其它cell时候,UITableView并不会执行...4.3 补充:代码设置选中状态 执行方法主体:cell对象 - (void)setSelected:(BOOL)selected; 注意是: 类似的,这种方法改变cell选中状态时,当屏幕选中其它...手动执行代理 上述两张方案区别在于,设置选中状态完后,屏幕点击其它cell时,一个执行原celldidDeselect方法,一个不执行。

    3.6K50

    iOS 无侵入埋点组件总结

    结合AOP核心思想:将应用程序业务逻辑同对其提供支持通用服务进行分离,最后采用了第2种方案。...这样确实能够唯一表示此 view 了,但是有一个缺点:它可读性很差。因此在此基础又增加了每个节点名称,节点名称由当前节点 view 类名来表示。同时在开头都添加了一个页面名称作为标识。...,再由 UIApplication 调用其 sendAction:to:fromSender:forEvent: 方法来将消息分发到指定 target 。...这个方法对 UIControl 及继承 UIControl 子类对象有效,如:UIButton、UISlider 等。...和 UIViewController 生命周期埋点不同是,一个类可能有许多不同 UIButton 子类,相同 UIButton 子类在不同视图中埋点也要区分出来,所以我们通过 NSStringFromClass

    2.9K31
    领券