Implement photo disperse transition similar to Photos on iPad - ios

On the iPad, when you tap an album in Photos, the photos in the album "explode" out from the stack of photos and align neatly into a grid. That's a very cool transition and I want to try to replicate it, but I could not find any open source projects that have attempted to do just that. How could this be accomplished?
The setup is two view controllers, currently segueing via the usual push transition. The first view controller already has the assets collections PHFetchResult, and it could easily obtain the assets for each collection. I understand one must use the UIViewControllerTransitioningDelegate, but how this specific transition effect can be accomplished is what I'm wondering about. Wondering if anyone has already attempted this (in Objective-C or Swift preferably Swift), and if not, how it can be implemented.

A search for “UICollectionView Photo Stack” will get you pointed in the right direction.
Example? http://skeuo.com/uicollectionview-custom-layout-tutorial
Ultimately, you're going to be dealing with creating one layout that stacks all of the items in one spot. When the item is tapped, you invalidate the layout and introduce the grid-based layout.

Related

Multiple Photos in slideshow type display within viewController?

I am new to Xcode (started a few days ago).
I'm trying to find a way to get a few photos or videos in a display where the user can scroll or tap through as they desire. There will be multiple viewControllers each with a different set of photos.
Is there any existing UI type data types I can just drag and drop to make this work? Or is this out of range of the capabilities for someone not using code specifically.
I know Java, C, C++, MATLAB, etc. but never have toyed with Objective-C until now. Point being, I should be able to follow any logic you can throw at me, but I'm unfamiliar with the GUI and layout of Xcode as a whole.
This is what I currently have.
This is what I want. Perhaps with functionality to tap to full screen the image or swipe to go to another image. (This image was made with photosop. I don't actually have the picture file in Xcode because I don't know how)
SOLVED: Placed desired images in "Supporting files" content folder inside Xcode. This allowed me to select which photo I want displayed in which ImageView. To fix the proportionality issue where photos in Simulator are far too large, I simply added height and width constraints along with some other centering aspects and got the desired result.
Add UICollectionView in your view and set flow of collection view is horizontal make cell size that you want to keep.
Take a look at UICollectionViewController where you can display multiple cells with embedded views for your images, and consider segueing between them via a UINavigationController.
Edit: Now that you've added screenshots, I'd recommend using a UICollectionView embedded on your subclass of a UIViewController instead of a UICollectionViewController. This should give you more flexibility.

UICollectionView vs UIPageViewController

I need to have different full screen views in my app. Very similar to how snapchat works. The views should be able to communicate between each other.
My question is: Should I use a UICollectionView with cells same size as the screen or should I use UIPageViewController?
Please provide some background info to support your opinion!
I think both have pretty different purposes.
UICollectionView is great to build a mosaic of views (think an image gallery for instance), whereas UIPageViewController is kind of similar to the flipping pages of a book. The latter seems to be what you need, but UIPVC doesn't seem to offer many tweaking/customizations, like custom transitions for example. In which case you may want to start from a UIScrollView with paging enabled to recreate something similar but with more potential. Here's an example.
Personal opinion: for this specific case I'd use a page view controller. Collection views have any things you have to consider, like when the device rotates you have to recalculate where you are, which cell you have to display, ask to scroll to the current cell, and if you are displaying a video or using the camera you might have to control it perfectly, otherwise issues will come.
However think about new features that might be added to your app, if you think you might show more than 2 items on screen, then you'd better choose a collection view.
A page view controller lets the user navigate between pages of
content, where each page is managed by its own view controller object.
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/
So If you plan to swipe from one ViewController to another, go for PageViewController. If you plan to have only one ViewController that deal with a list of fullscreen image or so, go for a view controller with a collectionView, or maybe your own swipeView.
UIPageViewController use different view controller and load multiple controller so obvisioly take more memory as compared to UICollectionView. So if your required task is less calculation or step to do then its recommended to use UICollectionView, other case preferred way is to user UIPageController.

How to put several views(not images) in page view controller?

I am a very starter in iOS Developing.
Now I would like to make an app of a children's story book using PageViewController. I have read some tutorials of PageViewController, but unfortunately all of them are about putting images in the PageContentViewController. I want to use views instead of images, because the content will be modified sometimes. Also, I don't want the views overlapped together because I want the workflow be visible.
I wonder whether there is a way to achieve it??? Thanks in advance!!!

What iOS Control can overlay the detail like Toucharcade app

I have been searching for a UI Control and don't know what its called, which makes it tough to find right? What UI Control in iOS 5 or 6 provides a view overlay that can swipe away? Kind of the opposite of a slide-out nav view. I am looking at the TouchArcade app as an example, where you tap an item and this slides out an overlay with an article or review. Its also possible to have several overlay's that can swipe to the right for removal. Is this a custom control? I know this must be an easy question, I just don't know what its called, and therefore, my terms don't help much in Google. The closest thing I have found is ShinobiControls Overlays: http://www.shinobicontrols.com/shinobiessentials/
I'd rather just make my own than rely an somebody else's library I have to keep up to date. On the other hand, that one does look pretty good and would save me time.
Edit:
Picture of TouchArcade as an example overlay view.
You see how the article is presented over the list view below? What controls do that in iOS? It also allows multiple overlays as you click further into each item. You dismiss them by swiping them to the right, dragging them out of view.

iOS: UI Ideas for moving items between multi-level tableViews

I am building an iOS app that allows the user to browse a tableView, click a cell, then navigate deeper into another tableView using a navigationController.
I have a requirement to be able to move any of those items/cells to another place in the navigation stack. Right now my idea is, once the user selects the cells to move, to display a modal tableView that will allow the user to navigate through the same structure as before, but this time choose the location (by pressing and holding) to place those cells.
Are there any other UI ideas or clever programatic ideas that anyone might have that could be a better solution to this problem?
Perhaps take a look at how Apple's iOS Mail moves email messages between different mailboxes?
This also basically displays a modal view controller, but it flattens the hierarchy, by indenting nested items below their parent objects. You than just select the item that is the destination.
This of course only works if your hierarchy is not too deep, otherwise it's probably best to do it like you outlined it. The only thing I would perhaps recommend doing in addition, is to also have some sort of visual method (button?) to select the destination. A long press by itself might not be intuitive enough.

Resources