TimOliver / TOCropViewController

A view controller for iOS that allows users to crop portions of UIImage objects
http://www.timoliver.com.au/2015/06/21/tocropviewcontroller-an-open-source-image-cropper-for-ios/
MIT License
4.74k stars 955 forks source link

Add an option to always use vertical layout #472

Open Theome opened 3 years ago

Theome commented 3 years ago

Is your feature request related to a problem? Please describe. The landscape layout of TOCropViewController shows the a vertical bar on the left, with the "Done" button in the top left corner. I think that this is a very uncommon position for a "Done" button. When navigating through a UI hierarchy, that position usually means "Back" or "Close", and when editing something one would expect an option that discards the current work. Tapping there to continue with the selection instead feels wrong, and positioning a "Done" button in either the top right or bottom right corner seems a more "correct" choice.

Describe the solution you'd like I'd like to see an option to always use TOCropViewController with its "vertical layout", i.e. the toolbar on the bottom with the "Done" button on the bottom right.

Additional context I'm using TOCropViewController from Swift, and an easy workaround to achieve this is to create a subclass and override verticalLayout like this:

@objc var verticalLayout: Bool {
    return true
 }

I'm not 100% sure if this has unintended side effects, but it seems to work fine, so maybe it would be easy to offer this property as an option alwaysUseVerticalLayout during initialization.