When faced with a challenging programming problem, I often find it helps to create an entirely new project to solve the problem in isolation (This is also great for tackling bugs). With this approach, I can focus better and avoid the distractions which an ever-expanding software project contains. This also promotes reuse and good API design. Recently, I took this approach for an image cropping control. I’m working on a personal project which has a pretty customized image cropper.
In this cropper I focused on customization, so I could reuse this component in future projects without having to worry about messy scrollview or image cropping code. I’ve had some experience with camera images so I wrote a method to crop, orient, and resize the image in one drawing pass. Put all together, this control provides a fast and memory efficient way to get an image from a user at the exact size you want.
Let me know if you have any suggestions for improvement or feature requests. The component is also available on CocoaPods.