- A crash occurring on (allegedly) certain older beta version of iOS 26.0. (#635)
- A UI layout issue where the Done button would be obscured by the iPadOS title bar buttons when in windowed mode. (#631)
- Fixed a rotation animation issue occuring on iOS 26. (#636)
- The cropping region being scaled to its minimum size when the toolbar position was set to top. (#626)
- Gated out the iOS 26 code so the code is still buildable in Xcode 16.0. (#620)
- The sizing code of the middle toolbar so it doesn't look overstreteched with fewer icons. (#624)
- A new Liquid Glass design for iOS 26. 🎉 (#619)
- Configurable lists of available aspect ratios. (#608)
- Updated Xcode project for Xcode 26. (#618)
- Deprecated
imageEdgeInsetsfor iOS 15 and above. (#618)
- Deprecated iOS 11 as it no longer supported in Xcode 26.
- A bug in iOS 26 where the toolbar buttons would appear misaligned.
- Another invalid configuration in the privacy manifest. (#580)
- An invalid configuration in the privacy manifest. (#576)
- Removed deprecated Core Graphics render APIs. (#578)
- Initial support for visionOS. (#572)
- A crash when tapping the aspect ratio button. (#573)
- Added better support for Swift Concurrency. (#563)
- Set minimum version to iOS 11. (#571)
- A
PrivacyInfo.xcprivacyfile to the resource bundle in order to be compliant with Apple's new privacy requirements. (#569) - A new aspect ratio setting of 16:6. (#557)
- Ukranian localization. (#529)
- Updated project for Xcode 15. (#571)
- Exposed
reverseContentLayoutas an external property. (#568) - Exposed
cropViewas an external property. (#532) - Added a way to revert back to the original aspect ratio after selecting a custom ratio from the list. (#543)
- A deprecation warning when trying to detect the current device's idiom. ((#543)
- Added in a variety of properties that were available in
TOCropViewControllerbut notCropViewController. ((#541)
- Removed unneeded layout calculation. (#485)
- Incorrect accessibility label for the 'Reset' button. (#487)
- Improved Japanese localization. (#502)
- Fixed an API typo in the Swift interface. (#504)
- Fixed incorrect comment formatting producing HTML errors. (#507)
- Extremely basic support for Mac Catalyst, with an accompanying sample app. (#464)
- Switched to using system SF Symbol icons on iOS 13.0 and up. (#455)
doneButtonColorandcancelButtonColorproperties to control the color of the main call-to-action buttons in the toolbar. (#436)showOnlyIconsproperty to disable showing the "Cancel" and "Done" text labels. (#438)commitCurrentCrop()method to programmatically simulate tapping the 'Done' button. (#441)- Added Catalan localization. (#449)
- Fixed an issue where visible snapping would occur during the presentation animation on iPad models with rounded corners. (#461)
- Improved logic for detecting whether the controller needs to be popped or dismissed from its current presentation context. (#443)
- Fixed a CocoaPods installation issue where warnings would be displayed about importing the header references needed for SPM support. (#445)
- Added provisions for later versions of SPM no longer supporting iOS 8. (#448)
- Added
allowedAspectRatiosproperty to Swift layer. (#453)
- Added back in resource support for SPM on Xcode 12. (#466)
- Fixed a potential performance slow-down by replacing a custom mask, with standard
CALAyerrounded corners for circular crops. (#462) - Rewrote how rotated regions of an image are extracted to not rely on Core Animation hackery. (#463)
- Duplicate header build warnings when installing via CocoaPods. (#432)
- SPM Support. (#413)
- The ability to explicitly show and hide the 'Cancel' and 'Done' buttons in the toolbar. (#392)
- A memory crash caused by improper
selfusage in delegates between multiple instances of the Swift crop view controller. (#409)
- Brazilian Portuguese Language Support (#380)
- A visual glitch that would occur in iOS 13 because the Swift view controller wasn't explicitly marked as full screen. (#385)
- A visual glitch where the image would snap upwards during the presentation animation on non-Face ID devices. (#387)
- A bug where subclassing the class in Swift would fail because it wasn't using the desginated initializer. (#379)
- Finnish Language Support (#360)
- Improved the UX of the cancellation dialog by changing the buttons from affirmative actions to explicit actions. (#362)
- A crash that would occur if the cancellation confirmation dialog was attempted to be displayed on iPad. (#362)
- Swift 5.0 Support (#343)
- Persian Language Support (#337)
- Added
customAspectRatioNameproperty to expose the custom aspect ratio as a selectable choice (#344)
- Made delegate in
CropViewControllerweak. (#338)
- Swift 4.2 Support
- Romanian and Hungarian localizations.
- The ability to show only certain aspect ratios.
- A setting to allow confirmation before cancelling a crop.
- Fixed layout issue on the new iPad Pro
- Fixed issues with the aspect ratio settings when zooming out.
- Fixed an issue when rotating images would sometimes break.
- A bug where the completion handler of the cropping operation wouldn't fire.
- iOS 7 Support
- Image does not invert when 'Smart Invert Colors' is enabled.
- A Core Animation crash when the image size is initially NaN.
- The image being positioned slightly higher than it should be on iPhone X.
- An imprecision issue where the reported cropping frame was out of bounds.
minimumAspectRatioto set a minimum shape that the cropping box can be scaled to.cropViewPaddingto specifically control how much padding from the edge the crop box gives.cropAdjustingDelayto specifically control how long the timer waits until animating the crop transition.aspectRatioLockDimensionSwapEnabledas a stopgap to locking the aspect ratio when rotating the image.
- More thorough sanitation of the final frame calculation.
- A bug where sometimes the square aspect ratio would stop being square.
- A memory cycle leak in the Swift wrapper.
- A broken animation when rotating the device orientation 180 degrees.
- A broken animation if you hit 'reset' right after resizing the crop box.
- Danish and Malaysian localisations weren't being imported properly.
aspectRatioLockDimensionSwapEnabledto enable or disable the crop view controller aspect ratio dimensions to swap when the aspect ratio is locked.
- Moved all Objective-C code into
CropViewControllerframework to avoid needing importingTOCropViewControllerframework.
- Size calculation for one of the tool bar buttons was incorrect.
- Optimized toolbar layout code to be more efficient.
- Title label was being clipped by the sensour housing on iPhone X.
- Init methods in
CropViewControllerweren't public. - Simplified the handling of making rotation buttons visible and hidden.
- Tool bar icon misalignment error on iOS 10 and below.
- A bug where restoring a previous crop state with a different angle than 0 and then rotating the image would result in a distorted image.
- Fixed a broken animation where restoring from a cropped image would animate higher than it needed on iPhone X.
- A Swift wrapper library named
CropViewController. - Proper handling for when swiping near the Control Center and Notification Center edges on iOS 11.
- An animation distortion that occurred when restoring from a previous crop view frame.
- A crash that occurred when restoring to a rotated image.
- A bug where rotating images on iPhone X in landscape would result in images incorrectly being positioned.
- Support for iPhone X.
- Fixed missing semicolons in iOS 7 code brace.
- Fixed minor issue with certain
nullableproperties being marked asnonnull. - Made the clockwise rotation button visible by default.
- Broken rotation animations in iOS 11.
- Incorrect inset of crop content when status bar is visible.
- General cleanup of the codebase
- Added a CHANGELOG. (Yay!)
TOCropViewController.titleproperty will display a title label above the crop view box.- Added more thorough checks to ensure both all delegate and completion block handlers execute in the right order.
- Fixed scroll view insets to work properly with new iOS 11 assumptions.
- Fixed crop box frame resizing to properly clamp when it touches an outer boundary.