- FontAwesome support
- view shadow
- toast show and with completion
- network helper
- much more
add font awesome ttf file to your project also mark them in your info.plist
dependencies: [
.package(url: "https://github.com/sahibhussain/SahibHelper.git", .upToNextMinor(from: "1.3.0"))
]
💡 ** Tip:** use the latest release version written on the badge.
let designHelper = DesignHelper.shared
let networkHelper = NetworkHelper.shared
Custom Switch as SahibSwitch which inherits UIView
You can use any combination of horizontal and vertical alignment to achieve your desired layout.
horizontalAlignment = .left
horizontalAlignment = .right
horizontalAlignment = .justified
-
horizontalAlignment = .leading
Renders as either
.left
or.right
, depending on the user's layout direction (UIApplication.shared.userInterfaceLayoutDirection):.leftToRight
→.left
.rightToLeft
→.right
-
horizontalAlignment = .trailing
Renders as either
.left
or.right
, depending on the user's layout direction (UIApplication.shared.userInterfaceLayoutDirection)..leftToRight
→.right
.rightToLeft
→.left
verticalAlignment = .top
verticalAlignment = .center
verticalAlignment = .bottom
-
You have a collection view in Interface Builder and setup its data source appropriately. Run the app and make sure everything works as expected (except the cell alignment).
-
In the Document Outline, select the collection view layout object.
-
In the Identity Inspector, set the layout object's custom class to
AlignedCollectionViewFlowLayout
. -
Add and customize the following code to your view controller's
viewDidLoad()
method:let alignedFlowLayout = collectionView?.collectionViewLayout as? AlignedCollectionViewFlowLayout alignedFlowLayout?.horizontalAlignment = .left alignedFlowLayout?.verticalAlignment = .top
If you omit any of the last two lines the default alignment will be used (horizontally justified, vertically centered).
💡 Pro Tip: Instead of type-casting the layout as shown above you can also drag an outlet from the collection view layout object to your view controller.
-
Create a new
AlignedCollectionViewFlowLayout
object and specify the alignment you want:let alignedFlowLayout = AlignedCollectionViewFlowLayout(horizontalAlignment: .left, verticalAlignment: .top)
-
Either create a new collection view object and and initialize it with
alignedFlowLayout
:let collectionView = UICollectionView(frame: bounds, collectionViewLayout: alignedFlowLayout)
or assign
alignedFlowLayout
to thecollectionViewLayout
property of an existing collection view:yourExistingCollectionView.collectionViewLayout = alignedFlowLayout
-
Implement your collection view's data source.
-
Run the app.
For the left
and right
alignment AlignedCollectionViewFlowLayout
distributes the cells horizontally with a constant spacing which is the same for all rows. You can control the spacing with the minimumInteritemSpacing
property.
alignedFlowLayout.minimumInteritemSpacing = 10
Despite its name (which originates from its superclass UICollectionViewFlowLayout
) this property doesn't describe a minimum spacing but the exact spacing between the cells.
The vertical spacing between the lines works exactly as in UICollectionViewFlowLayout
:
alignedFlowLayout.minimumLineSpacing = 10