使用 Swift 扩展 UIView 类
Posted
技术标签:
【中文标题】使用 Swift 扩展 UIView 类【英文标题】:Extended UIView class using Swift 【发布时间】:2014-10-07 20:40:13 【问题描述】:我一直在尝试继承 UIView 并使用 https://***.com/a/24036440/3324388 的帮助来处理“init(coder)”问题
但是,即使是最基本的尝试,我也经常遇到障碍,我希望有人可以发布一个简单的示例,说明使用 Swift 子类化 UIView 所需的实际代码。
我当前的代码是
//image class
import UIKit
class childView: UIView
var image:UIImage!
required init(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
我不想传递这个 NSCoder 对象(我不确定它做了什么,它使我的代码变得混乱)。您能否发布一个示例,说明如何干净地将 UIView 子类化,然后如何在另一个类中初始化它?
我真的很想扩展我的 UIView 类以获得一些很酷的效果,例如投影、自动缩放和许多其他商品,而无需创建子视图来处理所有这些(例如 UIScrollViews 中的 UIImageViews)
【问题讨论】:
【参考方案1】:看起来很简单。只需按照代码完成即可。
class MyView : UIView
var image = UIImage()
required init(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
override init(frame: CGRect)
super.init(frame: frame)
var v = MyView()
我正在初始化一个虚拟的UIImage
,所以如果你使用你的解包版本,如果它是nil
,你不会有一个丑陋的惊喜。
【讨论】:
这如何与覆盖和要求一起工作?什么时候调用所需的? 当参数适合签名时 好吧,我想我在必需和覆盖之间感到困惑。谢谢。 乐于助人,但同时也是被动的侮辱。为什么不只是帮忙?学习者不需要像“无法想象问题是什么……”这样的评判方法。一票赞成,一票反对。以上是关于使用 Swift 扩展 UIView 类的主要内容,如果未能解决你的问题,请参考以下文章
如何在包装器 Swift View 中使用自定义 UIView 的扩展功能?
如何覆盖子类的 swift 协议函数(例如 UIView 中的 UILabel)