NavigationBar button mis-alignment in some views on iOS - ios

I have a couple views that I'm showing as examples of a problem I'm having with buttons in the UINavigationBar. Here is a view showing the button correctly:
Here is the button in another view mis-aligned:
In both views, I have a UINavigationBar, and within it, a button (which is an image). In one view, the button displays aligned fine and fits in the navigation bar properly; however, when I use the back button (from the good view), the button on the navigation bar mis-aligns (seems like it's moving down, or zooming, or something). I've scoured the code, and done lots of adjustments/tweaks in the storyboard for the view, but can't figure out why the button moves in the simulator.
I'm fairly new to iOS development, so I've turned on/off endlessly different settings in the storyboard, and nothing fixes it.

Related

Swift - how to mimic iOS's Files app expandable navigation bar

I'm working on iOS application in Swift and I'm showing a table views in Navigation Controller with a Navigation bar.
I'd like to implemented the same "Toolbar experience" as the Files app does. (see attached image) in order to present additional options/buttons without cluttering the screen (for UX purposes mostly).
I could not find anything related, expect for workaround with toolbar on top, but it does not work as part of the navigation bar, meaning that after navigation that toolbar is no following the navigation bar but instead stays on the previous controller.
The ideal behavior is:
to expand when scrolling down (requires table view to be scrolled to top) and to collapse when scrolling down.
to keep the toolbar attached to the navigation bar on navigation (push & pop)
In the screenshot, the toolbar is showing additional options (under the search bar). I'd very much like to do the same.

Large title automatically expands when collapsed and button changes title. Any thoughts?

I have a view with a large title navigation bar, and a scrollview with a content view inside it. The scrollview is scrolling normally (alwaysBouncesVertical set to true) and the large title collapses and expands as it is supposed to.
I have a button at the bottom of the screen, and when I click it, I change its title. The weird thing is, that when I change it, if the navigation bar is collapsed, it will immediately expand and make the scrollview scroll a bit up, making the button go almost totally out of the screen. From this point on, scrolling works normally again and I can scroll back to the button without any problems.
Do you guys know why setting the title with the regular
self.button.setTitle("", for: .normal)
Would trigger the navigation bar expansion?
I tried setting the text to many different strings. I also tried doing other changes to the button layout (such as disabling it) but none of these changes produced the same problem.

Placing a share button over a uiwebview

I have an rss app that I'm working on in xcode and the articles load up in a full screen web view. I need to place a "share" button in the navigation bar but since my uiwebview is full screen it won't show up when I run the app. I even tried cropping the top of the web view lower and placing the button there but still no luck. Here is an example of what I mean:
The share button needs to be on the right side of the navigation bar but i cannot seem to figure out how that make that work.
Thanks in advance
Fist of all, your top navigation bar seems to be missing (judging by your image). Since the nav bar is missing there is no possible way that the share button will be visible. You can do this is the IB or in your code.
For your IB you can move the view controller's 'layer's' so to speak. When you place all the elements down, your VC should look something like this:
On the left hand side we can see what subviews are at the top and which ones are at the bottom.
As we can see here that the UIWebView is at the top of the list, so it'll be at the bottom of the pile. The navigation bars are further down the list so they'll be at the top of the pile. So due to this they'll go over the UIWebView.
The other way to do this is using insertSubview:aboveSubview:. Fist of all you'll add your UIWebView using addSubview: and then add the nav bar using insertSubview:aboveSubview: and finally you'll add your button the someway as you did for the nav bar, but this time you'll be adding the button above the nav bar not the web view.
My best guess is that your forgetting to add another navigation bar to the top of the screen. Hope this helps!!

Attach a Segmented Control to UINavigationBar

In my App, I have a map view and I want to use a segmented control to change the map types (Standard, Hybrid, Satellite). The way I have the app set up, the status bar is hidden and it animates in, moving the navigation bar down a bit. To make sure it doesn't look awkward, I want to make it so the segmented control is attached to the navigation bar so it animates nicely as the status bar comes in. This is basically a picture of what I want to do:
So I noticed that the segmented control is inside a toolbar, so I contain mine in a toolbar as well. I've then tried adding the toolbar to the navigationBar as a subview. (self.navigationController.navigationBar). That works well accept that it can't be tapped because the navigation bar's frame doesn't enclose the extra space, so it can't receive touches. I tried making the frame of the bar bigger, and that worked, but the title and the buttons went away. Obviously there is some way to do this, and I would appreciate any help. Thanks.

UIButtons initially non-functional when positioned on the right-hand side of a view

All:
I am working on an app in which I have multiple UIButtons and UITextFields on the top and right hand side of a UIView. The UIViewController is embedded in a tab bar controller, and I'm using iOS 7.
When the view first appears, the UIButtons and UITextFields on the right are unresponsive -- they are enabled (according to .isEnabled), but the buttons don't flash, and the keyboard doesn't appear when I tap on the UITextField. If I switch to another tab and then back, they work.
The controls at the top work as expected.
However, if I drag the right hand side controls more towards the center of the app, they work first time. There's like a 100 pixel "dead zone" that only goes away when I switch tabs.
Update: If I bypass the tab bar controller completely, and make the view controller associated with the above the initial view controller, then the controls work as they should.
What is going on??
Thanks,
Michael

Resources