ios-iOS 里uitableview的问题

问题描述

iOS 里uitableview的问题

在UITableView中,改变cell的alpha 值,在向下拉重用时在visiableCells中alpha 值没有改变

这是cellForRowAtIndexPath函数里最底下的测试代码,输出此时的cell的地址和alpha值,以及此时visiableCells中所有cell的地址和alpha值:

printf("第%d个cell:<%p>t alpha:%fn",no++,cell,cell.alpha);
printf("visiableCells里有%ld个元素n",self.tableView.visibleCells.count);
for (XYTableCell* cell in self.tableView.visibleCells) {
printf("%pt",cell);
printf("这个cell的alpha值为:%fn",cell.alpha);

}

return cell;

    运行之后得到的结果是:
    第10个cell:<0x7f858b65c7e0>  alpha:0.500000
    //第十个cell在return前alpha值是0.5

visiableCells里有8个元素
0x7f858b51af60 这个cell的alpha值为:0.500000
0x7f858b528990 这个cell的alpha值为:1.000000
0x7f858b52f0f0 这个cell的alpha值为:0.500000
0x7f858b535320 这个cell的alpha值为:0.500000
0x7f858b53bf40 这个cell的alpha值为:0.500000
0x7f858b695500 这个cell的alpha值为:1.000000
0x7f858b729c00 这个cell的alpha值为:1.000000
0x7f858b4afa40 这个cell的alpha值为:1.000000
第11个cell: alpha:0.500000
visiableCells里有8个元素
0x7f858b528990 这个cell的alpha值为:1.000000
0x7f858b52f0f0 这个cell的alpha值为:0.500000
0x7f858b535320 这个cell的alpha值为:0.500000
0x7f858b53bf40 这个cell的alpha值为:0.500000
0x7f858b695500 这个cell的alpha值为:1.000000
0x7f858b729c00 这个cell的alpha值为:1.000000
0x7f858b4afa40 这个cell的alpha值为:1.000000
//然而返回之后就变成1.0了,这是为什么?
0x7f858b65c7e0 这个cell的alpha值为:1.000000

解决方案

是想将所有的cell都设为半透明吗?那就写到 if(cell == nil){} 里面;如果只是特殊的几个要求是透明的,或者是特殊机制下是透明的,你可能出现了复用问题

解决方案二:

你的Cell是复用了,当从界面消失时,会从队列里复用Cell。你可以把一些alpha只能为0.5的写在Cell==nil,或者另外写。

时间: 2024-08-03 15:30:11

ios-iOS 里uitableview的问题的相关文章

iOS开发系列--UITableView全面解析

概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 基本介绍 UITableView有两种风格:UITableViewSt

iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码_IOS

废话不多说了,直接给大家贴代码了. 具体代码如下所示: #import "ViewController.h" #import "TuanGouModel.h" #import "TuanGouTableViewCell.h" #define kDeviceWidth [UIScreen mainScreen].bounds.size.width #define kDeviceHeight [UIScreen mainScreen].bounds.

CNNVD有关Cisco IOS&amp;IOS XE Software CMP 安全漏洞情况的通报

本文讲的是CNNVD有关Cisco IOS&IOS XE Software CMP 安全漏洞情况的通报,路由交换市场份额领先的思科(Cisco)公司于3月17日发布了IOS和IOS XE Software安全漏洞(CNNVD-201703-840),引起了广泛关注.该漏洞允许未授权的攻击者执行任意代码.提升权限.重启设备等.国家信息安全漏洞库(CNNVD)对此进行了跟踪分析,具体情况如下: 一. 漏洞简介 Cisco IOS/IOS XE Software是美国思科(Cisco)公司为其网络设备

思科 IOS&amp;IOS XE Software CMP远程代码执行漏洞通报

2017年3月17日美国时间下午4点,Cisco官方网站发布Cisco IOS&IOS XE Software 集群管理协议(Cluster Management Protocol)存在远程代码执行漏洞.该漏洞目前为0day漏洞,危害等级高.该漏洞允许未授权访问,远程攻击者可以重启设备和远程执行代码提升权限. Cisco IOS是Cisco的网际操作系统:是一个为网际互连优化的复杂的操作系统:也是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术(软件). 根据

iOS:使用 UITableView 创建表格应用演练(3) 使用区段分类显示表格数据

上文完成后,"微博关注人"这个应用虽然距离最终的完成还有不小的距离,但从视觉上已经比演练(1)完 成时有了不小的改进.:] 细心的朋友们在上次演练中已经发现,我们定义的数据结构中,有一个名为"类别"的字段, 这个字段的设置主要用于帮助我们更好地管理我们的关注对象.本文演练仅仅涉及一个问题,就是如何按照 "类别"在表格中分区段显示数据.本此演练之后,相信您会对iOS中的数组(NSMutableArray)和 plist文件的使用也会有一个新的理解.

详解iOS App中UITableView的创建与内容刷新_IOS

UITableView几乎是iOS开发中用处最广的一个控件,当然也是要记相当多东西的一个控件. 创建首先创建一个新的项目,并添加一个MainViewController的Class文件 打开MainViewController.h文件 @interface MainViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSArray *

详解iOS开发中UITableview cell 顶部空白的多种设置方法_IOS

我知道没人会主动设置这个东西,但是大家一定都遇到过这个问题,下面总结下可能是哪些情况: 1, self.automaticallyAdjustsScrollViewInsets = NO; 这个应该是最常见而且不容易被发现的原因,起因是iOS7在Conttoller中新增了automaticallyAdjustsScrollViewInsets这个属性,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scr

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

IOS中UITableView使用总结 一.初始化方法 - (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style;   这个方法初始化表视图的frame大小并且设置一个风格,UITableViewStyle是一个枚举,如下: ? 1 2 3 4 typedef NS_ENUM(NSInteger, UITableViewStyle) {     UITableViewStylePlain,         

iOS开发中UITableview控件的基本使用及性能优化方法_IOS

UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) 复制代码 代码如下: #import <Foundation/Foundation.h> @interface NJHero : NSObject /**  *  头像  */ @property (nonatomic, copy) NSString *icon; /**  *  名称  */ @property (nonatomic, copy) NSString *name; /**