Mohamed Afifi

5pods

GenericDataSources

A generic small composable components for data source implementation for UITableView and UICollectionView.

License: MIT

  • Swift

KVOController-Swift

Supports Swift 3.0

Have you ever wondered if you can implement a generic key-value observing for Swift. It makes your life easy and saves you a lot of casting. This project is inspired by facebook/KVOController. So, it doesn't only provide a neat API for KVO', but also makes use of Swift generics feature.

License: MIT

  • Swift

NextResponderTextField

Supports Swift 4.0!

Represents a next responder UITextField. When the instance becomes first responder, and then the user taps the action button (e.g. return keyboard key) then one of the following happens: 1. If no nextResponderField set, keyboard dismissed. 2. If nextResponderField is a UIButton and disabled, then keyboard dismissed. 3. If nextResponderField is a UIButton and enabled, then the UIButton fires touch up inside event (simulating a tap).

You can set nextResponderField to any UIResponder subclass, and it will become first responder when tapped. But having multiple NextResponderTextField pointing to each other, then you can go to next field.

The typical usage will be list of NextResponderTextField and the last one point to a UIButton.

For example a login screen: Username -> NextResponderTextField Password -> NextResponderTextField Sign In -> UIButton

Username.nextResponderField -> Password Password.nextResponderField -> Sign In

License: MIT

  • Swift

PagedHorizontalView

A horizontal scoller view that makes its collection view cells full screen and can optionally wire UIPageControl and a previous and next UIbuttons.

It doesn't affect the appearance of the controls and doesn't implement the collection view data source to keep full flexibility while doing the repeated work for a horizontal scroller.

License: MIT

  • Swift

VAGlowingButton

A custom and simple UIButton subclass that glows when the user is touching down over the button.

License: MIT

  • Objective C