iOS : subclassing UINavigationBar for custom title view - ios

I've subclassed UINavigationBar, I wanted to have a UIView contains UIImageView + UILabel inside it, I'm able to achieve it by setting titleView property. But, what I want to know is whether its possible to add it inside subclass directly?

Better way add one UIView on Navigationbar and then add any component on that so it is easy to manage those component because if you add component on left button right button and title label it not that much flexible to customise (i.e. if you added any component on titleLabel you can set that component frame only equal or less that title label. but if you add on UIView on Navigation bar then you can customise all components easily)
I hope it will help you.

Related

Button to imitate UIBarButtonItem

I am using the UIBarButtonItems to trigger special actions but I also want to add another button on the bottom part of the screen with the same dimensions as the ones created in the NavigationBar, how could I do this?
Can I do it in the Interface Builder with some fixed width/height constrains or do I have to do it programatically, if so could you give me an example?
Thank you
The easiest way would be to add a UIToolbar to the bottom of the view. If your view controller is in a UINavigationController, the best way to do this would be to add the bar button items, either in Interface Builder by drag-and-drop or programmatically using setToolbarItems.

iOS/Swift: Dynamically Resize a Toolbar

I'm trying to make an app with a toolbar that can be resized. Basically, the toolbar can alternate between being at the bottom of the view and being at the top. When a button is pressed, it switches from one to the other. The problem is that when it is at the top, I want the size of the toolbar to expand to accommodate the status bar, but I don't know how to do this.
I've seen some solutions for changing the toolbar size but they all seem static and not something that can be changed with the tap of a button. Any suggestions on how to do this? Perhaps a different solution altogether?
You can use a normal UIView and customize it so it looks like a UIToolbar, then just set constraints using AutoLayout and animate the height-constraint.

Nav bar button bigger than the nav bar height

Let's have a a picture :
Is there a way to have a Navbar button bigger than the navbar it self, like the "O" button ?
Or If not, what is the best hack if i want to trie to have this renderer ?
I think the best way it make custom viewcontroller which support this logic.
For example you can create custom viewcontroller with method setNavigationBarByType:(YourType)
Then use this viewcontroller as parent viewController
Try with clipSubview = NO for UINavigationBar --> Its UIView property so it should work over UINavigationBar as well but I'm not sure about this
Instead of using UINavigationBar use custom controls like,
UIView as a containerView
--Backround UIImageView
--Back UIButton Custom style
--Right UIButton Custom style
Display this containerView in your RootViewController where you require to put common controls of your application. and the middle part of screen will be populated as per button tap event or screen flow.
Hope this will help you.
Create UILabel configure and set as navigation bar title view.
Added this button as subview to navigation bar title view.

uitoolbar with icons/text similar to uitabbar

Ideally I want to use a UIToolbar but I want the icons at the bottom to appear as they would in a UITabBar meaning with icon for default and highlighted states and title beneath. I know I can drag a UIButton onto the toolbar and it will create a UIButton inside of a UIBarButtonItem, but I can't seem to manipulate the UIButton to show a title beneath? The other problem I'm having is when I set the alignment of the button in IB (in the Control section) it only changes the alignment for the default state not the highlighted state. Can anyone give me some pointers here that would be great thanks!
rc
Putting the UIButton inside a UIBarButtonItem is the best way I've found to do it. Just set the text for the button and it should show up fine. When manipulating the positioning, remember you're manipulating the position of the UIBarButtonItem and not the UIButton. Hope that helps!

Creating a custom UINavigationbar for iPad in iOS 5 with ARC

I am creating an iPad application for ios 5 using arc and storyboard in xcode 4.3. I need to customize the UInavigationbar to make it broader than its usual size (almost double sized) and add to it some custom logos (images) and buttons. Can anyone pls point me in the correct direction on how this can be acheived? any third party libraries are also welcome if required.
Thanks in advance for your help on this one.
To start, you'll want to subclass UINavigationBar. While it is possible to change the height, the UINavigationBar background isn't going to play nicely, so you'll probably want to use your own background image.
Here's some information about resizing the navigation bar
Change the height of NavigationBar and UIBarButtonItem elements inside it in Cocoa Touch
iPhone - How set uinavigationbar height?
And another article on how to add the images and buttons as subviews.
http://www.iosdevnotes.com/2011/09/custom-uinavigationbars-techniques/
I don′t know how you would change the size of the UINavigation bar.
To add custom buttons you can outlet your navigationItem in the storyboard to the interface of your view controller. Then use setLeftBarButtonItems: and setRightBarButtonItems: to put multiple buttons you previously created.
To add custom black and white logos to the buttons you can use [navigationButtonItem setBackgroundImage: yourImage].
If you want your logos in color you can create a UIButton with the colored logo ([newButton setImage: yourImage]) and then init your navigation button item with : initWithCustomView: newButton.

Resources