UIImageViewAlignedSwift
Usage
To run the example project, clone the repo, and run pod install
from the Example directory first.
Requirements
- iOS 8.0+, tvOS 9.0+
- Swift 5.x
Installation
Package Manager
You can add UIImageViewAlignedSwift to an Xcode project by adding it as a package dependency.
- From the File menu, select Add Packagesโฆ
- Enter
https://github.com/sochalewski/UIImageViewAlignedSwift
into the package repository URL text field. - Add the package to your app target.
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate UIImageViewAlignedSwift into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'UIImageViewAlignedSwift'
Then, run the following command:
$ pod install
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate UIImageViewAlignedSwift into your Xcode project using Carthage, specify it in your Cartfile
:
github "sochalewski/UIImageViewAlignedSwift"
Run carthage update
to build the framework and drag the built UIImageViewAlignedSwift.framework
into your Xcode project.
What is it?
It is a subclass of UIImageView
that allows you to customize the alignment of the displayed image inside the view's frame.
This works even if the contentMode
is set to .scaleAspectFit
, .scaleAspectFill
or .scaleToFill
.
It is rewritten to Swift based on original UIImageViewAligned by reydanro.
Why a subclass of UIImageView, and not a standard UIView?
Because there are many cool categories built on top of UIImageView
. Subclassing a standard UIView
would mean losing them.
For example, AFNetworking
's async UIImageView
category works perfectly using this container class, and you don't have to worry about a thing.
How does it work?
When initialized, UIImageViewAligned
will create a inner UIImageView
which will actually hold the image displayed.
The main class then just repositions this inner UIImageView
to achieve your desired alignment.
At runtime, you can change the image
, contentMode
or alignment
and the image will reposition itself correctly.
The image
property of UIImageViewAligned
is overwritten to forward the calls to the inner UIImageView
, so you can just drag and drop into your app.
Author
Piotr Sochalewski, sochalewski.github.io
License
UIImageViewAlignedSwift is available under the MIT license. See the LICENSE file for more info.