LoadableViews
Easiest way to load view classes into another XIB or storyboard.
Basic setup
- Subclass your view from
LoadableView - Create a xib file, set File's Owner class to your class
- Link outlets as usual
Usage
- Drop UIView to your XIB or storyboard
- Set it's class to your class name
Your view is automatically loaded to different xib!
IBInspectable && IBDesignable
IBInspectables automatically render themselves if your view is IBDesignable. Usually Interface Builder is not able to automatically figure out that your view is IBDesignable, so you need to add this attribute to your view subclass:
@IBDesignable class WTFCatView: LoadableView
UI classes supported
- UIView -
LoadableView - UITableViewCell -
LoadableTableViewCell - UICollectionViewCell -
LoadableCollectionViewCell - UICollectionReusableView -
LoadableCollectionReusableView - UITextField -
LoadableTextField - NSView -
LoadableViewusingAppKit
To use loading from xibs, for example for UICollectionViewCells, drop UIView instead of UICollectionViewCell in InterfaceBuilder, and follow basic setup. Then, on your storyboard, set a class of your cell, and it will be automatically updated.
Customization
Change xib name
class CustomView : LoadableView {
override var nibName : String {
return "MyCustomXibName"
}
}
Change view container
class CustomViewWithLoadableContainerView : LoadableView {
override var nibContainerView : UIView {
return containerView
}
}
Making your custom views loadable
- Adopt
NibLoadableProtocolon your customUIVieworNSViewsubclass. - Override
nibNameandnibContainerViewproperties, if necessary. - Call
setupNibmethod in bothinit(frame:)andinit(coder:)methods.
Known issues
IBDesignableattribute is not recognized when it's inside framework due to bundle paths, which is why in current version you need to addIBDesignableattribute to your views manually.UITableViewCelland thereforeLoadableTableViewCellcannot be madeIBDesignable, because InterfaceBuilder usesinitWithFrame(_:)method to render views: radar, stack overflowUIScrollViewsubclasses such asUITextViewdon't behave well with loadable views being inserted, which is whyUITextViewloadable subclass is not included in current release, but may be implemented in the future.
Requirements
- iOS 8+
- tvOS 9.0+
- macOS 10.12+
- Swift 5 / 4.0 / 3.2
Installation
CocoaPods
pod 'LoadableViews'
License
LoadableViews is released under the MIT license. See LICENSE for details.
About MLSDev
LoadableViews are maintained by MLSDev, Inc. We specialize in providing all-in-one solution in mobile and web development. Our team follows Lean principles and works according to agile methodologies to deliver the best results reducing the budget for development and its timeline.
Find out more here and don't hesitate to contact us!

