大佬教程收集整理的这篇文章主要介绍了ios – 从TableViewCell中删除imageView子图层,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
... layer.name = @"Gradient"; [cell.imageView.layer insertSublayer:layer aTindex:0];
当ImageView没有图像时,我需要删除这个子图层.
我尝试了不同的方法但没有成功.我试过的最后一次是
for (CALayer *layer in cell.imageView.layer.sublayers) { if ([layer.name isEqualTo@R_674_10495@ng:@"Gradient"]) { [layer removeFromSuperlayer]; } }
CoreData: error: SerIoUs application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. *** Collection <CALayerArray: 0xc1502e0> was mutated while being enumerated. with userInfo (null)
for (CALayer *layer in cell.imageView.layer.sublayers) { if ([layer.name isEqualTo@R_674_10495@ng:@"Gradient"]) { [layer removeFromSuperlayer]; break; } }
解决方案2:不要枚举真实数组,而是使用其副本.
NSArray* sublayers = [NSArray arrayWithArray:cell.imageView.layer.sublayers]; for (CALayer *layer in sublayers) { if ([layer.name isEqualTo@R_674_10495@ng:@"Gradient"]) { [layer removeFromSuperlayer]; } }
解决方案3:使用键值编码来保持对渐变层的引用.
插入后设置:
[cell.imageView.layer insertSublayer:layer aTindex:0]; [cell.imageView.layer SETVALue:layer forKey:@"GradientLayer"];
检索并删除它
CALayer* layer = [cell.imageView.layer valueForKey:@"GradientLayer"]; [layer removeFromSuperlayer]; [cell.imageView.layer SETVALue:nil forKey:@"GradientLayer"];
以上是大佬教程为你收集整理的ios – 从TableViewCell中删除imageView子图层全部内容,希望文章能够帮你解决ios – 从TableViewCell中删除imageView子图层所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。