Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaredsinclair/JTSImageViewController
An interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.
https://github.com/jaredsinclair/JTSImageViewController
Last synced: 9 days ago
JSON representation
An interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.
- Host: GitHub
- URL: https://github.com/jaredsinclair/JTSImageViewController
- Owner: jaredsinclair
- License: mit
- Created: 2014-03-30T00:25:20.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-03-29T21:50:17.000Z (over 6 years ago)
- Last Synced: 2024-09-28T02:47:52.955Z (about 1 month ago)
- Language: Objective-C
- Size: 1.18 MB
- Stars: 32
- Watchers: 5
- Forks: 11
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios-animation - JTSImageViewController - An interactive iOS image viewer that does it all: double tap to zoom, *flick to dismiss*(like Tweetbot), et cetera. (Uncategorized / Uncategorized)
README
# DO NOT USE. "I AM SUPER DUPER CEREAL, YOU GUYS."
### ~~*This repository is no longer under active development. I think it's probably still safe to use on iOS 7 through 9, but your mileage may vary. I may someday do a thorough rewrite in Swift, taking into account newer API features, etc. ~ Jared*~~
JTSImageViewController
======================An interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.
## Pull Requests
Pull requests are welcome, but should be submitted on the `dev` branch. Exceptions will be made for critical bug fixes.
## What Does it Do?
JTSImageViewController is like a "light box" for iOS. It's similar to image viewers you may have seen in apps like Twitter, Tweetbot, and others. It presents an image in a full-screen interactive view. Users can pan and zoom, and use Tweetbot-style dynamic gestures to dismiss it with a fun flick.
## Screenshot
## How Does it Work?
Usage is pretty simple, though there are some cool options and delegate methods if you need them. Here's what your simplest implementation might look like:
```objc
- (void)someBigImageButtonTapped:(id)sender {
// Create image info
JTSImageInfo *imageInfo = [[JTSImageInfo alloc] init];
imageInfo.image = YOUR_SOURCE_IMAGE;
imageInfo.referenceRect = self.bigImageButton.frame;
imageInfo.referenceView = self.bigImageButton.superview;
// Setup view controller
JTSImageViewController *imageViewer = [[JTSImageViewController alloc]
initWithImageInfo:imageInfo
mode:JTSImageViewControllerMode_Image
backgroundStyle:JTSImageViewControllerBackgroundOption_Scaled];
// Present the view controller.
[imageViewer showFromViewController:self transition:JTSImageViewControllerTransition_FromOriginalPosition];
}
```That's it.
## Extras and Options
- **Image Downloads:** If you don't have the source image already, just use the `imageURL` property when setting up the `JTSImageInfo` instance. JTSImageViewController will handle downloading the image for you.
- **Background Styles:** Choose between a scaled-and-dimmed style or a scaled-dimmed-and-blurred background style. The latter is like the one used in Tweetbot.
- **Alt-Text Mode:** Need to show the alt text for an image? JTSImageViewController includes an alternate mode that shows a full-screen, centered text view using the same style as the image mode.
- **Handle Long-Presses:** Implement an `interactionsDelegate` to respond to long presses on the image, or to temporarily disable user interactions (comes in handy if you show an overlay that could cause gesture conflict).
## License
MIT License, see the included file.