Image Coordinate Space
UICoordinateSpace
for UIImageView
image
Usage
Convert CGPoint
from image coordinates to view coordinates:
import ImageCoordinateSpace
let imageSpace = imageView.contentSpace()
let imageTopLeft = imageSpace.convert(CGPoint.zero, to: imageView)
Convert CGPoint
from view coordinates to image coordinates:
let viewTopLeft = imageSpace.convert(CGPoint.zero, from: imageView)
Similar conversions are available for CGRect
:
let imageRect = CGRect(x: 321, y: 102, width: 63, height: 64)
let viewRect = imageSpace.convert(imageRect, to: imageView)
and from view coordinates to image coordinates:
let viewRect = CGRect(x: 107, y: 68, width: 21, height: 42.667)
let imageRect = imageSpace.convert(viewRect, from: imageView)
Examples
Add positioned image overlay
Open included Xcode Example project to see Xcode Playground: Example/Visual.playground
Converting image face detection regions to view touch points
- Translating CIDetector (face detection) results into UIImageView coordinates http://stackoverflow.com/questions/12201603/translating-cidetector-face-detection-results-into-uiimageview-coordinates
- Convert from CIRectangleFeature coordinates to view coordinates http://stackoverflow.com/questions/33198266/convert-from-cirectanglefeature-coordinates-to-view-coordinates
Other uses from popular Stackoverflow questions:
- Show image popover: http://stackoverflow.com/questions/15968251/get-the-zoomed-coordinates-of-an-image
- Reposition image: http://stackoverflow.com/questions/16733419/how-to-get-uiimage-coordinates-x-y-width-height-in-uiimageview-in-xcode
- Add touch events to image: http://stackoverflow.com/questions/17200191/converting-uiimageview-touch-coordinates-to-uiimage-coordinates
- Implement pan and zoom for the image: http://stackoverflow.com/questions/1813432/how-to-determine-image-coordinates-for-a-large-cropped-image-within-a-uiimagevie
Documentation
HeaderDoc is included, see UIImageView+UICoordinateSpace.swift
Installation
CocoaPods
- add the following line to your Podfile:
pod 'ImageCoordinateSpace'
- run
pod install
Carthage
-
add to your Cartfile:
github "paulz/ImageCoordinateSpace"
-
run
carthage update
-
link your app with
ImageCoordinateSpace.framework
fromCarthage/Build/iOS
folder
Unit tests
To run included unit tests install dependencies via Carthage:
carthage bootstrap
Run tests:
xcodebuild test -scheme ImageCoordinateSpace -destination 'platform=iOS Simulator,name=iPhone X'
See them pass at lightning speed:
Test Suite 'All tests' passed at 2017-12-13 08:07:14.826.
Executed 36 tests, with 0 failures (0 unexpected) in 0.013 (0.023) seconds
** TEST SUCCEEDED **
Author
Paul Zabelin, https://github.com/paulz
License
ImageCoordinateSpace is available under the MIT license. See the LICENSE file for more info.