首页
学习
活动
专区
圈层
工具
发布

iOS14适配【解决UITableViewCell兼容问题(往cell添加子视图的方式不规范)】

IDE Xcode,准备适配iOS14 API,结果发现app首页的cell中按钮也无法点击了。...I、问题分析 iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接 cell.addSubView(tempView1) 这种方式添加的,通过...cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理 II、使用方法交换,...cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理 具体例子如下2.2.1...UITableViewCell * myCell = (UITableViewCell *)[textField superview].superview; 所以使用class的时候,最好写得健壮性强点

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS小技能: 解决UITableViewCell兼容问题(iOS14适配)

    前言 问题:升级最新IDE Xcode,发现app首页的cell中按钮也无法点击了。...原因:往cell添加子视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法) I 问题分析 iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题...cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理 II 解决UITableViewCell...cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理 具体例子如下2.3.1...3.2 iOS 恢复调用栈(适配iOS14) 原理:objective-c 函数信息除了保存在符号表中,还保存在其他段中 https://github.com/zhangkn/restore-symbol4iOS14

    1.9K30

    使用UITableViewCell遇到的问题

    最近在使用此控件时却遇到了一些问题,UITableView上的每个小的控件是UITableViewCell。大多数的UITableViewCell都需要自定义,这样会更灵活些,能满足我们功能上的需求。...先说我的问题吧: 项目需求:一个UITableView上有两种类型的UITableViewCell。 根据项目需求这时需要自定义两种类型的UITableViewCell(这里我们称为A、B两种类型)。...在我定义好了两种UITableViewCell之后在使用的时候却出现了问题:在我使用B类型对象的时候Xcode却告诉我此对象是A类型的对象,因此不能调用B类型对象的相关方法。...当时我以为是Xcode的一个bug呢,最后发现还是我的问题. 发现原因:我跳到了方法:[FooterCell cellWithTableView:tableView];中,发现问题出现在了这里。...由于UITableViewCell的唯一标识符都是一样的,让Xcode认为两种Cell都是一样的。 解决:在我将CellID修改之后,此问题得到了解决。 教训:切记唯一标识符的意义。

    1.1K10

    iOS开发中UITableViewCell点击时子视图背景透明的解决方法

    iOS开发中UITableViewCell点击时子视图背景透明的解决方法         在做iOS项目的开发中,UITableView控件的应用十分广泛。...在进行自定义UITableViewCell时,经常有小伙伴遇到这样的问题:在UITableViewCell上面添加了一个有背景颜色的子视图,当用户点击UITableViewCell或者选中UITableViewCell...产生这种情况的主要原因是由于UITableViewCell的选中风格所致。...如果开发者不进行设置,UITableViewCell中的selectionStyle属性默认风格为UITableViewCellSelectionStyleBlue。...如果需要使用Cell的选中风格同时又不想让Cell上的子视图收到影响,我们可以继承UITableViewCell后在其中覆写父类的如下两个方法,在这些方法中重新设置子视图的背景色: //这个方法在Cell

    1.9K30

    iOS开发之有间距的UITableViewCell

    UITableView是最常用的一个iOS控件,现要做一个如下图的UITableView,其中白色部分就是cell,可是默认的UITableView中cell之间是没有间隔的,那么办呢?...这种方式在cell左滑删除,置顶等操作的时候,左滑出的视图会高出一部分(左滑显示出的高度=(cell的高度-留下的间距高度)+ 留下的间距高度),很显然这种方式有致命缺陷。...2、方式二 通过分组的方式间接的实现,每组的Header可以当做是cell之间的间距,每组中只有一个cell,代码如下: - (NSInteger)numberOfSectionsInTableView...其实优雅的也是最简单的方法是直接让UITableView中的cell收缩一点,这样UITableView的底色就是分割线的颜色了,如上图就是橘色。...感谢简友的提醒,之前做的是无编辑的情况,有编辑的没有测试。

    1.9K61

    iOS学习——UITableViewCell两种重用方法的区别

    今天在开发过程中用到了UITableView,在对cell进行设置的时候,我发现对UITableViewCell的重用设置的方法有如下两种,刚开始我也不太清楚这两种之间有什么区别。...直到我在使用方法二进行重用的时候,具体实现代码如下,其中CJMeetingReplyBasicCell是我自定义的UITableViewCell类型,但是在运行的时候每次都在调用 CJMeetingReplyBasicCell...那么,这两种重用UITableViewCell的方法之间到底有什么区别呢?...中对两者的解释如下,我们可以看到方法二是在iOS 6.0中开始推出的新方法,在对方法二的解释中,我们注意标红的部分的意思是假设我们已经注册了标识符,这里我们猜测可能是我们需要对标识符进行注册。...language=objc,官方文档对方法二的解释有两点需要注意,第一个是返回值的地方如下图,这里说道该方法总是返回一个有效的UITableViewCell,这是与方法一不同的地方之一。 ?

    1.3K70

    iOS小技能: tableView section间距失效的解决方案

    前言 tableView 一些常用的细节技巧: iOS tableView设置style:UITableViewStyleGrouped 时,非第一个section的间距失效】的解决方案 修改 tableViewSectionHeader...字体及背景色 为UITableViewCell设置预估高度 iOS 自定义UITableViewHeaderFooterView (替代titleForHeaderInSection) https:/...51,51,51); header.textLabel.font = kPingFangFont(15); [header layoutIfNeeded]; header.clipsToBounds...self.tableView.backgroundColor; } 1.3 自定义FooterView iOS 自定义UITableViewHeaderFooterView (替代titleForHeaderInSection) II 为UITableViewCell...1、 上部分:展示已经选择的类目信息,并清晰的从上倒下罗列对应层级类目信息(悬浮),点击类目的时候,下部分的展示的类目信息切换为同级类目信息供选择。

    1.7K30

    UITableViewCell自适应网络不规则图片和文字组合的高度

    列表样式 有时我们会需要对cell的图片和文字进行显示并完美自适配其大小,下面用我有限的知识做了个适配,看着好像还能用,哈哈 直接上code 001 在tableview的获取cell高度的方法里写调用自定义...TableViewCell : UITableViewCell @property (nonatomic, strong) UILabel *title; @property (nonatomic,...; @property (nonatomic, strong) DataModel *model; - (void)setModel:(DataModel *)model; // 获取cell的高度的方法...,记得导入SDWebImage -(void)setImageURLSize:(NSString*)imageURL { // 先从缓存中查找图片 UIImage *image = [[SDImageCache...sharedImageCache] imageFromDiskCacheForKey: imageURL]; // 没有找到已下载的图片就使用默认的占位图,当然高度也是默认的高度了,除了高度不固定的文字部分

    2.3K20

    UITableViewCell系列之(一)让你的cell支持二次编辑

    关于UITableViewCell一些别具一个的样式和用法。很早就想系统的写一篇文章,文章中囊括开发中UITableViewcell的一些花样用法和奇葩用法。...结果还是以简短的方式分享出来,因为没有太多时间思考文章的脉络和条理。这只是一个开头,关于UITableViewCell的一些特殊的用法,我还会继续在这个系列中更新。...如下图,先来看看我所说的可编辑的cell的效果: ? enableEditCell.gif 开发中,有时候需要对tableView的某一行的内容(通常是文本)进行二次编辑。...tableView numberOfRowsInSection:(NSInteger)section { return self.contentTexts.count;; } - (UITableViewCell...cell,遍历数组中每个cell的frame,找到点击的那个cell - (WSEnableEditCell *)getCellInTableView:(UITableView *)tableView

    8.1K40

    UI篇-UIResponder之事件传递和响应精析

    iOS中的几种常见事件 ? 这篇文章只讨论触摸事件。...在一个用户点击事件处理过程中,UIEvent对象是唯一的。 点击对象UITouch UITouch表示单个点击,其类文件中存在枚举类型UITouchPhase的属性,用来表示当前点击的状态。...每次点击发生的时候,点击对象都放在一个集合中传入UIResponder的回调方法中,我们通过集合中对象获取用户点击的位置。...因此我们自建一个UITableViewCell类,并声明inputAccessoryView和inputView为readwrite的,并且重写它们的get方法,这样在某个tableviewcell变成第一响应者时...效果图 实现过程解析: 1.自定义一个View设置其颜色为橙色,高度为200,并设置 self.layer.cornerRadius = 100; self.clipsToBounds = YES

    3.2K30
    领券