//BaseViewWithXib.swift
import UIKit
class BaseViewWithXib: UIView {
var contentView: UIView?
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
func setupView() {
let view = viewFromNibForClass()
view.frame = bounds
view.autoresizingMask = [
UIViewAutoresizing.flexibleWidth,
UIViewAutoresizing.flexibleHeight
]
addSubview(view)
self.contentView = view
}
private func viewFromNibForClass() -> UIView {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
return view
}
}
//MyView.swift
import UIKit
@IBDesignable class MyView: BaseViewWithXib {
@IBInspectable var bgColor:UIColor?{
didSet {
self.contentView?.backgroundColor = bgColor
}
}
//must be . if not, IB designable compile error occur!
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
2020년 2월 9일 일요일
Custom View , @IBDesignable, @IBInspectable
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기