A bunch of tools, cocoa subclasses and extensions we created and use at Ackee.
You can also use Carthage. Specify this repo in your Cartfile:
github "AckeeCZ/ACKategories" ~> 6.15.0
Or you can use SPM. Add this to your Package.swift
:
.package(url: "https://github.com/AckeeCZ/ACKategories.git", .upToNextMajor(from: "6.15.0")),
If you're interested in using ACKategories in your older projects see all branches, there probably is the version you need.
This is only fast description of features, see source code for documentation comments and details.
ACKategories contain basic FlowCoordinator
that should be used as parent class for all your flow coordinators. For more information see FlowCoordinators.
Extension for UIButton that fixes intrinsicContentSize
and adds titleEdgeInsets
to it.
- Initialize colors with hex codes
- Create random color
- Create lighter/darker colors from color
- Recognize light/dark background colors to decide what text color you should use.
- Create solid color image from color.
Add action blocks to UIControls.
let button = UIButton()
button.on(.touchUpInside) { sender in
...
}
If running on iOS 9 or later you can use implicit parameter UIControl.primaryActionTriggered
.
- trim strings easily
- get first letter of string
- simplify localization
isEmpty
on optional collections (even strings). Returnstrue
when collection isnil
or empty.
Use this view as TableHeaderView or TableFooterView when your table/footer has dynamic content size.
Use this view when you want to create a view with gradient colors and a given axis.
Init
takes two parameters:
colors
: The colors to be used for the gradient.axis
: The axis of the gradient:.vertical
for bottom-to-top gradient,.horizontal
for left-to-right gradient.
Please note: If one of your colors is clear, you should usually define to which "clear color" it should go to - i.e. if you want to go from white to clear, write:
let gradientView = GradientView(colors: [UIColor.white, UIColor.white.withAlphaComponent(0)], axis: .vertical)
Since now you can use simple extension which autoregisters your UITableView
and UICollectionView
cells!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// generically dequed cell which was autoregistered, no need to register your cells in advance
let cell: YourCustomCell = tableView.dequeCellForIndexPath(indexPath)
return cell
}
And it's the same story with UICollectionView
.
If you use our extensions within your team we would love to hear about it. Drop us a tweet at @ackeecz or leave a star here on Github. BTW we would also like to know what other extensions you use!
This repo has been opensourced within our #sharingiscaring
action when we have decided to opensource our internal projects.
Ackee team
ACKategories is available under the MIT license. See the LICENSE file for more info.