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

子类UITableViewCell - backgroundView掩盖了我在drawRect中所做的任何事情

子类UITableViewCell - backgroundView掩盖了我在drawRect中所做的任何事情。

UITableViewCell是iOS开发中用于展示表格数据的视图组件,它是UITableView的一部分。UITableViewCell可以通过子类化来自定义外观和行为。

在UITableViewCell的子类中,我们可以通过重写drawRect方法来自定义绘制视图的外观。然而,当设置了backgroundView属性时,该视图将覆盖我们在drawRect方法中所做的任何绘制操作。

backgroundView是UITableViewCell的一个属性,它是一个UIView类型的视图,用于设置单元格的背景视图。当设置了backgroundView后,它将覆盖UITableViewCell的默认背景视图,并且会覆盖我们在drawRect方法中所做的任何绘制操作。

解决这个问题的方法是在自定义的UITableViewCell子类中,将绘制操作放在backgroundView的下方,或者使用其他方法来实现自定义的背景效果,例如使用UIImageView作为backgroundView,并设置其image属性来实现自定义背景。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体的产品选择应根据实际需求进行评估和选择。

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

相关·内容

【iOS7一些总结】9、与列表显示():列表显示UITableView

大家好,又见面了,是全栈君。 列表显示,顾名思义它是一个列表视图形式显示屏幕上数据内容。于ios列表视图UITableView达到。这个类实际应用中频繁,是很easy理解。...UITableView定义头文件UITableView.h,详细定义能够查看官方文档;从定义能够看出,UITableView继承自UIScrollView类,因此支持方便地显示列表数据同一时候...详细使用过程,能够创建一个独立UITableView,也能够直接创建一个UITableViewController。...新生成ViewController.m文件里重写loadView方法,新建一个UITableView视图。 (别忘了把alloc视图dealloc函数释放。)...代理方法能够实现创建新视图控制器并控制其载入到屏幕上。

1.9K40

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

如果子类是其他视图容器那么它不需要重写这个方法。默认实现不做任何事情。如果你自定义视图是一个UIView子类,你不需要去调用它父类实现。...子类需要重写sizeThatFits:用来计算正确尺寸大小。默认实现不做任何事情。...机制 4.1.1 简介         iOS绘图操作是UIView类drawRect方法完成,所以如果我们要想在一个UIView绘图,需要写一个扩展UIView 类,并重写drawRect...重绘操作仍然drawRect方法完成,但是苹果不建议直接调用drawRect方法,当然如果你强直直接调用此方法,当然是没有效果。...4.2 使用技巧 4.2.1 UITableViewCell中使用DrawRect         不能在UITableViewCell中直接使用DrawRect方法,应该在ContentView增加一个子

38330

iOS UITableViewCell使用详解

iOSUITableViewCell使用详解 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString...@property (nonatomic, retain) UIView                *backgroundView; 背景视图 @property (nonatomic, retain...注意:要让cell实现拖动排序功能,除了上面设置为YES,还需实现代理的如下方法: -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath...,可以子类重写 - (void)didTransitionToState:(UITableViewCellStateMask)state; cell状态已经转换时调用函数,可以子类重写,状态枚举如下...< 0,//编辑状态     UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1//确认删除状态 }; 注意:下面这些方法已经全部IOS3.0

1K20

iOS layout相关方法

layoutSubviews 这个方法,默认没有做任何事情,需要子类进行重写 。...layoutSubviews 5.旋转Screen会触发父UIView上layoutSubviews事件 6.改变UIView大小时候也会触发父UIView上layoutSubviews事件 苹果官方文档强调...drawRect调用是Controller->loadView, Controller->viewDidLoad 两方法之后掉用.所以不用担心控制器,这些ViewdrawRect就开始画了.这样可以控制器设置一些值给...以上1,2推荐;而3,4不提倡 drawRect方法使用注意点: 1、若使用UIView绘图,只能在drawRect:方法获取相应contextRef并绘图。...2、若使用calayer绘图,只能在drawInContext: (类似于drawRect)绘制,或者delegate相应方法绘制。

1K10

iOS开发-1.UITableView你会用吗?

前一段时间,公司招聘了一个新员工,界面做出来了,但是很卡,看完他写代码,发现没有对UITableViewCell进行循环使用,而且UITableView代理方法,创建了很多并没有什么用对象,一些调用频繁方法也没有很好地处理...Paste_Image.png 被static修饰局部变量:只会初始化一次,整个程序运行,只有一份内存。...Paste_Image.png 选中cell,点击重用标识 这样代码,就可以省略掉:那个判断语句:if(cell== nil){创建cell方法} 以后tableView开发一个cell ?...将要显示出来方法执行下面的代码 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell...Paste_Image.png 如果设置不选中cell背景颜色(两种方法) cell.backGroundColor = [UIColor redColor]; 另一种设置方法cell.backgroundView

79130

【IOS开发基础系列】Table View开发专题

2.2 使用技巧 2.2.1 UITableViewCell去掉点击效果         相当于AndroidListViewselector设置成空/透明:     1.XIB设置         ...第一种比较常见,在网上到处都是,这也是抄别人。主要就是说自己定义一个view,弄成透明,然后盖TableView上部和下部,这样就“隐藏”了。...当然,最佳解决办法还是继承UITableViewCell,并在其drawRect:自行绘制: - (void) drawRect: (CGRect)rect {     if (image) {        ...实现drawRect:时候,它rect参数就是需要绘制区域,这个区域之外不需要进行绘制。...,优化时无意中解决了此问题,原来调用方法是A函数调用UIGraphicsGetImageFromCurrentImageContext(C函数)生成UIImage,然后传递给B函数去处理,这样内存会暴涨

26520

iOS中表视图(UITableView)使用详解

- (NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point;   获取某个celltableView位置信息 - (NSIndexPath *)...indexPathForCell:(UITableViewCell *)cell;  根据一个矩形范围返回一个信息数组,数组是每一行row位置信息 - (NSArray *)indexPathsForRowsInRect...:(CGRect)rect;  通过位置路径获取cell - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;  获取所有可见...UITableViewScrollPositionMiddle,//定位完成后,将定位行显示tableView中间        UITableViewScrollPositionBottom//...toIndexPath:(NSIndexPath *)newIndexPath; 了解了上面几个函数,我们来看什么是操作刷新块: 当我们调用的上面的函数时,tableView会立刻调用代理方法进行刷新,如果其中我们所做操作是删除某行

1.3K30

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

1.3 关于重用         为了得到高效View,对于cell重用是必须,避免了不断生成和销毁对象操作,这与UITableView情况是一致。...但值得注意时,UICollectionView,不仅cell可以重用,Supplementary View和Decoration View也是可以并且应当被重用。...iOS5,Apple对UITableView重用做了简化,以往要写类似这样代码: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier...展示之前,一般需要生成合适UICollectionViewLayout子类对象,并将其赋予CollectionViewcollectionViewLayout属性。...关于详细自定义UICollectionViewLayout和一些细节,将写在之后一篇笔记

32830

编码篇-继承+通知看方法实现和delloc方法调用

问题 点击进入UITableViewCell B后返回,再进入到 UITableViewCell A,触发通知A,此时会崩溃,崩溃 UITableViewCell B 方法B,( 这里说一下...Paste_Image.png UITableViewCell B初始化时候调用了 UITableViewCell A初始化方法,所以由于继承机制,实际上 UITableViewCell B注册了两个通知...由于方法B和方法A是一样,所以UITableViewCell B通知A调用方法A时候,实际上就调用了方法B,(当子类方法列表中有和父类方法列表方法一样情况下,会调用子类方法,而不调用父类方法...而且重写该方法时不能显式调用[super dealloc],和继承先加载父类再加载子类相反,注销时先注销子类之后再注销父类。因为系统会自动帮你调用父类dealloc方法。...很显然,UITableViewCell B不被释放是因为初始化时候注册通知没有移除,也没有机会移除了,造成每创建一个UITableViewCell B 都不会被释放,而是一直在内存

77920

Swift 类构造器使用

("init(coder:) has not been implemented")} 随后, 就如在 ObjC 中一样 init 方法调用了 super.init(), (/= _ =)/~┴┴...便利构造器会调用子类指定构造器, 指定构造器 (子类) 要确保所有的属性都已赋值, 完成所属内存初始化, 接着会指定构造器 (子类) 会调用父类指定构造器, 完成父类属性所属内存初始化, 直到达到构造器链最顶部...最终, 任意构造器链便利构造器可以有机会定制实例和使用 self 父类指定构造器定制实例属性 (可能). 子类指定构造器定制实例属性....跟 ObjC 不同, Swift 子类默认不会继承来自父类所有构造器. 这样可以防止错误继承并使用父类构造器生成错误实例(可能导致子类属性没有被赋值而正确初始化)...., 不过一般使用另一种, 属性定义时候就为他说初始化一个值.

1.7K20

setNeedsDisplay看我就懂!

一、着手 定义了一个UIView子类,用于演示使用setNeedsDisplay,这个CircleView子类会在draw(_ rect: CGRect)方法内简单绘制一个圆,它有一个颜色属性,这是我们将要设置用来改变圆颜色...二、配置属性、组件 应用程序下一部分是故事板配置一些UIKit组件,其中一个是CircleView。...,根据故事板配置步进器默认值,触发了一组初始圆形颜色。...而我们自定义了自己UIView子类,所以我们需要处理影响显示控件更新。改变颜色情况下,当然需要我们自己控制重新绘制。...所以我们需要调用setNeedsDisplay,明确地告诉系统必须重新绘制,从而显示新颜色 由此,我们需要考虑三个重要原则: 1、iOS,视图很明显会被缓存。

1.2K60

UITableView性能提升和优化(第

对于OS来说,创建和加载一个新cell到内存,都是要花费时间和内存资源。这就是为什么tableview总是queue 一个cell进行重用,无论这个cell是否屏幕之外。...首先解释一下在这些例子为什么没有使用[UIImage p_w_picpathd:@""]。...调用这些方法,OS不会自动在内存缓存图片。 所以,希望你通过一个小dictionary在内存存储图片,来自己缓存图片(请看第4章)。另外一个图片处理非常重要部分是多线程(请看第6章)。...使用这个技术,你可以把耗时处理任务放到当前线程之外。的当前例子,不会使用多线程,因为你必须立即了解很多新概念。本章结束时候,你应该自己做完这个练习。...渲染过程就会被阻塞;它将不能做任何事情或显示任何新东西。

64120
领券