我想为所有控件创建一个通用方法,如UIButton,UILabel,UIView,UITextView,为每个控件绘制下划线。有没有可能为上面的类编写这样的方法?
UIButton
UILabel
UIView
UITextView
fzwojiic1#
由于所有元素都继承自UIView,因此可以尝试
extension UIView { func addUnderline() { // create underline view add it with addSubview } }
你可以从任何元素调用它
UIButton().addUnderline() UILabel().addUnderline()
等等
pw9qyyiw2#
如果你真的想使用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) }
2条答案
按热度按时间fzwojiic1#
由于所有元素都继承自
UIView
,因此可以尝试你可以从任何元素调用它
等等
pw9qyyiw2#
如果你真的想使用Swift泛型,你可以写这样的代码: