Latest 4.0.0
License MIT
Platforms ios 9.3, requires ARC
Dependencies Eureka

Build status
Platform iOSSwift 4 compatible
Carthage compatible
CocoaPods compatible
License: MIT

By Xmartlabs SRL.


ImageRow is a Eureka custom row that allows us to take or choose a picture.



import ImageRow
import Eureka

class ViewController: FormViewController {

    override func viewDidLoad() {

        form +++ Section()
                <<< ImageRow() { row in
                    row.title = "Image Row 1"
                    row.sourceTypes = [.PhotoLibrary, .SavedPhotosAlbum]
                    row.clearAction = .yes(style: UIAlertAction.Style.destructive)
                <<< ImageRow() {
                    $0.title = "Image Row 2"
                    $0.sourceTypes = .PhotoLibrary
                    $0.clearAction = .no
                .cellUpdate { cell, row in
                    cell.accessoryView?.layer.cornerRadius = 17
                    cell.accessoryView?.frame = CGRect(x: 0, y: 0, width: 34, height: 34)
                    <<< ImageRow() {
                        $0.title = "Image Row 3"
                        $0.sourceTypes = [.PhotoLibrary, .SavedPhotosAlbum]
                        $0.clearAction = .yes(style: .default)

You must add the NSPhotoLibraryUsageDescription and NSCameraUsageDescription keys to your info.plist to use the Photo Library and camera. For more information, take a look at apple documentation.


  • iOS 9.3+
  • Xcode 10.2+
  • Eureka ~> 5.0

Getting involved

  • If you want to contribute please feel free to submit pull requests.
  • If you have a feature request please open an issue.
  • If you found a bug or need help please check older issues, FAQ before submitting an issue..

Before contribute check the CONTRIBUTING file for more info.

If you use ImageRow in your app We would love to hear about it! Drop us a line on twitter.


Follow these 3 steps to run Example project: Clone ImageRow repository, run carthage update from project root folder, open ImageRow workspace and run the Example project.

You can also experiment and learn with the ImageRow Playground which is contained in ImageRow.workspace.



CocoaPods is a dependency manager for Cocoa projects.

To install ImageRow, simply add the following line to your Podfile:

pod 'ImageRow', '~> 4.0'


Carthage is a simple, decentralized dependency manager for Cocoa.

To install ImageRow, simply add the following line to your Cartfile:

github "EurekaCommunity/ImageRow" ~> 4.0


ImageRow has 5 properties to customize:

  • sourceTypes which allows us to specify the source of the picture. It could be .PhotoLibrary, .Camera, .SavedPhotosAlbum, or any combination of the previous values since sourceTypes property type is ImageRowSourceTypes which conforms to OptionSet.
  • clearAction let’s us add a clear action sheet option and configure its style. Possible values are: .no or .yes(style: UIAlertActionStyle). Notice that .yes value requires we pass a UIAlertActionStyle style.
  • allowEditor tells the ImagePickerController to use the standard system image editor after a Image is selected. Possible values are: true or false. The default value for this property is false.
  • useEditedImage tells the ImageRow to use the edited Image from the editor instead of the original one. Possible values are: true or false. The default value for this property is false.
  • userPickerInfo this property holds the info properties of the ImagePickerController after a edited Image is selected, this can be used to further customization or information usage of the selected image. By default this property is nil.

To localize the Actionsheet strings just add the keys "Take photo", "Photo Library", "Saved Photos", "Cancel", "Clear Photo" to your Localizable.strings file


Change Log

This can be found in the file.

Latest podspec

    "name": "ImageRow",
    "version": "4.0.0",
    "summary": "Eureka row that allows us to take or select a picture.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Xmartlabs SRL": "[email protected]"
    "source": {
        "git": "",
        "tag": "4.0.0"
    "social_media_url": "",
    "platforms": {
        "ios": "9.3"
    "requires_arc": true,
    "ios": {
        "source_files": "Sources/**/*.{swift}"
    "dependencies": {
        "Eureka": [
            "~> 5.0"
    "swift_version": "5.0"

Pin It on Pinterest

Share This