错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例
Posted
技术标签:
【中文标题】错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例【英文标题】:error: Static member copyWithZone cannot be used on instance of type UIImageView 【发布时间】:2017-01-12 12:18:29 【问题描述】:class MDCollectionViewLayoutAttributes : UICollectionViewLayoutAttributes
var color: UIColor = UIColor.whiteColor()
var image : UIImageView!
override func copyWithZone(zone: NSZone) -> AnyObject
let newAttributes: MDCollectionViewLayoutAttributes = super.copyWithZone(zone) as! MDCollectionViewLayoutAttributes
newAttributes.color = self.color.copyWithZone(zone) as! UIColor
newAttributes.image = UIImageView(frame:newAttributes.bounds)
newAttributes.image.image = UIImage(named:"Appetizer.png")
newAttributes.image = self.image.copyWithZone(zone) as! UIImageView// this is giving me an error
return newAttributes
我需要在下面的代码中声明一个图像以将其设置为部分背景,但它给了我一个错误。
override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]?
let attributes = super.layoutAttributesForElementsInRect(rect)
var allAttributes = [UICollectionViewLayoutAttributes]()
if let attributes = attributes
for attr in attributes
if (attr.representedElementCategory == UICollectionElementCategory.Cell && attr.frame.origin.x == self.sectionInset.left)
let decorationAttributes = SBCollectionViewLayoutAttributes(forDecorationViewOfKind: "sectionBackground", withIndexPath: attr.indexPath)
// decorationAttributes.color = UIColor.brownColor().colorWithAlphaComponent(1)
有什么帮助吗?
【问题讨论】:
【参考方案1】:UIImageView 不符合 NSCopying 协议,这就是 copyWithZone 不起作用的原因。您可以创建 UIImageView 或其子类的扩展,以实现 NSCopying 一致性。
【讨论】:
有什么例子吗?或任何示例链接?以上是关于错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例的主要内容,如果未能解决你的问题,请参考以下文章
静态成员“负载”不能用于“AppDelegate”类型的实例
为啥静态成员函数只能在类定义中声明为静态,而不能在其自己的定义中声明?