https://github.com/simplisticated/visuality
Simplifying work with views in Swift
https://github.com/simplisticated/visuality
nib uikit uiview uiview-extension uiviewcontroller
Last synced: 12 months ago
JSON representation
Simplifying work with views in Swift
- Host: GitHub
- URL: https://github.com/simplisticated/visuality
- Owner: simplisticated
- License: mit
- Created: 2016-09-22T14:26:57.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-10-28T11:42:45.000Z (over 4 years ago)
- Last Synced: 2025-04-02T18:50:49.582Z (12 months ago)
- Topics: nib, uikit, uiview, uiview-extension, uiviewcontroller
- Language: Swift
- Size: 357 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## At a Glance
`Visuality` helps you to create view or view controller instance with NIB by one line of code. This is the main purpose of this library. Actually, there's a lot more features!
## How To Get Started
- Copy content of `Source` folder to your project.
or
- Use Swift package manager.
## Requirements
* iOS 9 and later
* Xcode 9 and later
* Swift 4
## Usage
### Views
To create new `UIView` instance, you have to use `.from()` static method:
```swift
MyView.from(nib: , inBundle: )
```
Nib query can be one of the following values:
- `byNibName("MyView")` - loads NIB with custom name
- `byClassName` - loads NIB with name of view class
- `byClassNameWithSuffix()` - loads NIB with name of view class and suffix
- `none` - loads view without NIB
List of available suffixes for NIB name:
- `_iPhone`
- `_iPad`
- `custom("suffix")`
Bundle query defines the bundle containing required NIB. Possible values are:
- `main` - main bundle
- `byInstance(bundle)` - requires instance of `Bundle` type
- `byIdentifier("com.example.App")` - requires bundle identifier
So, if you need to initialize a view of `MyView` type with same-named NIB file located in main bundle, you can simply write:
```swift
let view = MyView.from(nib: .byClassName, inBundle: .main)
```
### View Controllers
Initialization of view controller instances is very similar to view's initialization, but there's one more parameter:
```swift
let viewController = MyViewController.from(nib: .byClassName, inBundle: .main, loadView: true)
```
The last parameter `loadView` is a boolean value defining whether view should be loaded immediately after view controller's instantiation. In most cases you don't need to load view immediately, but, sometimes, this is a quite helpful option.
By default, `loadView` is `false`, so, if you don't need to load view controller's view immediately, you can avoid mentioning this parameter:
```swift
let viewController = MyViewController.from(nib: .byClassName, inBundle: .main)
```
In this case view will be loaded right before displaying on the screen.
## License
`Visuality` is available under the MIT license. See the `LICENSE` file for more info.