我想为所有控件(例如UIButton
,UILabel
,UIView
,UITextView
)创建通用方法,以便为每个控件画下划线。
是否可以为上述类编写这样的方法?
答案 0 :(得分:2)
由于所有元素都继承自UIView
,因此可以尝试
extension UIView {
func addUnderline() {
// create underline view add it with addSubview
}
}
您可以从任何元素中调用它
UIButton().addUnderline()
UILabel().addUnderline()
以此类推
答案 1 :(得分: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)
}