在UITableView中,改变cell的alpha 值,在向下拉重用时在visiableCells中alpha 值没有改变
这是cellForRowAtIndexPath函数里最底下的测试代码,输出此时的cell的地址和alpha值,以及此时visiableCells中所有cell的地址和alpha值:
printf("第%d个cell:<%p>\t alpha:%f\n",no++,cell,cell.alpha);
printf("visiableCells里有%ld个元素\n",self.tableView.visibleCells.count);
for (XYTableCell* cell in self.tableView.visibleCells) {
printf("%p\t",cell);
printf("这个cell的alpha值为:%f\n",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){} 里面;如果只是特殊的几个要求是透明的,或者是特殊机制下是透明的,你可能出现了复用问题