UIView 子类的 Swift 通用方法
Posted
技术标签:
【中文标题】UIView 子类的 Swift 通用方法【英文标题】:Swift Generic methods for UIView subclasses 【发布时间】:2018-09-13 10:51:28 【问题描述】:我想为UIButton
、UILabel
、UIView
、UITextView
等所有控件创建一个通用方法,以便为每个控件绘制下划线。
上面的类可以写这样的方法吗?
【问题讨论】:
【参考方案1】:由于所有元素都继承自UIView
,你可以试试
extension UIView
func addUnderline()
// create underline view add it with addSubview
你可以从任何元素调用它
UIButton().addUnderline()
UILabel().addUnderline()
等等
【讨论】:
【参考方案2】:如果你真的想使用 Swift 泛型,你可以这样写:
func addUnderline<V>(inView view: V, withHeight height: CGFloat, andColor color: UIColor) where V: UIView
let underlineHeight: CGFloat = height
let underlineView = UIView(frame: CGRect(x: 0, y: view.frame.height - underlineHeight, width: view.frame.width, height: underlineHeight))
underlineView.backgroundColor = color
view.addSubview(underlineView)
【讨论】:
以上是关于UIView 子类的 Swift 通用方法的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Swift 中的 ViewController 获取 UIView 子类实例