Unify XIB with its code.
We always try to generalize some views that would be used in different places throughout the app. And one approach that we usually do is to make XIB along with its code.
But as we know, the XIB and its code don't automatically connected. And we tend do these things to make them connected :
- Instantiate the NIB.
- Add the loaded NIB as a subview.
- Setting frame or constraints needed.
Always doing those things for every view that we make, I think there's a better way. What we have to do is calling one function inside our view's code. Yes, just that! Follow the steps below to see how it goes.
github "wilbertliu/Gluten"
Add the following line into the Podfile
:
pod 'Gluten'
After that, run the following command :
$ pod install
Because Gluten
was created in extension, we don't need to import
anything.
Just call glueSourceAndView()
function inside our view's code. Here's an example :
import UIKit
class ReusedView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
glueSourceAndView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
glueSourceAndView()
}
init() {
super.init(frame: CGRect.zero)
glueSourceAndView()
}
}
Note that when we have a class named ReusedView
, the XIB name must be the same.
When you're not doing so, Gluten
would leave those XIB and code unconnected.
If you have any feedbacks, feel free to submit a PR! And I'm more than happy to answer your questions, or maybe just some hi?! To do that, shoot me a DM or tweet @wilbertliu
MIT © Wilbert Liu