I have an embedded Page View Controller inside my VC.
What is the best solution to add a tap gesture on the image, so that it will open in a full screen with zoom enabled / paging between the images?
Should I try to animate this in my current VC or should I open it inside another VC?
Thanks in advance,
I would animate the page view controller to fill the screen instead of adding a new UIViewController, here is why:
Memory: You already have the images loaded once, no need to create a new UIViewController and re-load again. Also adding another UIViewController to the stack isn't the end of the world but should be avoided if possible.
Code: You'v already written code to handle the content size and addition of images to the page controller. Copy and pasting into a new UIViewController would be extremely redundant.
Animation: If you wanted to animate the photo going to full screen the best way would be to animate the frame of the existing page controller. Just make sure to update the content size after animating.
Related
I am making a type of drawer animation for iOS where a button tap in one of my views will expand that view over the other views from the bottom up. All is well, except when I want to change the button image after animation. The animation completes but then returns the view to its original position when setting the button image.
Things I have tried:
Using CGAffineTransformMakeTranslation instead of setCenter; this works perfectly, except I want to also add a panGestureRecognizer to interact with the drawer, present, and dismiss it. The transform doesn't seem to play well with this interaction
Adding the buttons programmatically thinking maybe AutoLayout is fussing with this
UIView beginAnimations as well as UIView animateWithDuration and completion block
Setting breakpoints and verifying that the movement of the view is reflected in the frame of the button before the image is changed; button frame is not still in original position, but has supposedly relocated with the view
It shouldn't matter, but my project is using TabBarController. I made a simpler version of what I'm trying to do with just the one view controller and had the same issue. The green view extends beyond the frame of the view controller's view so that when it moves up it reveals what is off-screen.
example: http://i.imgur.com/tRou0Js.png?1
I've been struggling with first responder problem. I put web controller (UIWebView) inside UITableViewCell and now I would like to scroll vertically my table and not affect UIWebView (this case may be done by disabling scrolling scrollview from UIWebView). However problem appears when user zooms into web content, then I want scroll horizontally through web content and still vertically scroll in table (cause cell will be resized to zoomed content).
There is a property called 'multipleTouchEnabled' that should disable the pinch gesture, but I think the user would still be able to double-tap (assuming the cell doesn't consume this gesture). Why not, instead of creating multiple UIWebView's (which have a large overhead) don't you create one hidden UIWebView that loads a website and caches an image, then load this image into the cell.
Ultimately, if you still wanted to use the UIWebView approach, you could probably subclass it and override hitTest/touches methods or handle the gesture recognizers yourself.
Also, if this is for iOS8 I would be using the WKWebView instead.
I have an app where the navigationBar is implemented according to Apple HIG, so 44px high. Thereunder is a searchBar which is directly under the navigationBar.
The guy designing my app now has created an custom image for the navigationBar which is 64 px high. I already cut the image so that the actual height of the navbar image is 44 px. And added the rest of the image to the tableView background image. Everything is implemented and works correctly except that now my searchBar is scrolling through my navigationBar IMAGE. So technically it is not in the navBar but from a UI design standpoint it is.
I cannot seem to find out how to make sure the space directly under the navigationBar (20px) is not used. It should look as if the navigationBar is 20px bigger to the user.
Hopefully someone can guide me in the right direction, thanks!
I think you have your search bar nested in a UITableView right? You can change your view controller to a subclass of UIViewController instead of a UITableViewController, and then you will be able to add the table view to the controller's view manually and adjust its size whatever way you want.
(Don't forget to let your controller implement data source and delegate protocols and hook it up with your table view.)
I found a ColorPicker (ILColorPicker) that takes the whole screen on an iPhone. I want to use it in my iPad app (XCode4 using StoryBoards)... it's asking me to "In your view controller's XIB, add a UIView and then set it's class to ILColorPickerView ". I don't want to use the entire scene, just a small part of it... is there another way I can accomplish this? (using Layers, frames, etc)?
You could programmatically create a popover (UIPopoverViewController), and put the color picker as the view for your popover.
I have a UITabBarController displaying a number of settings-screens in my app. I want them to be shown on just a part of the screen for layout reasons. In fullscreen, the lists become unreadable (too wide), there are just a few controls per page making the page feel very empty, and the tabbar buttons are far away from the content (Fitts law).
Using presentModalViewController with the UIModalPresentationFormSheet style gives me the size I want. I do this on top of an empty background, since in my case it doesn't make sense to display anything behind it. The "real" working area is displayed with another presentModalViewController in fullscreen mode on top of it all.
This works but feels like a hack. One problem is, I can't make the background behind the settings dialog move in the transition to fullscreen with the UIModalTransitionStyleFlipHorizontal style.
TL;DR
Can I embed a UITabBarController non-fullscreen in another "background"-view? I can't find any information of how I would do this.
Can I embed a UITabBarController non-fullscreen in another "background"-view? I can't find any information of how I would do this.
Why don't you try it out?
Create a container view of the size you want the tab bar controller to have.
Create the tab bar controller.
[containerView addSubview:tabBarController.view];