iOS7 tab bar custom icon height - height reduces until icon gets invisible - ios7

I implemented tab bar with custom icon sizes to match the design:
The first and the last icon sizes are reduced to fit below the circle line by setting the bar item sizes as follows:
The strange behaviour that happens only on iOS7+ is that when the user taps already active resized tab bar icon for the second time - it gets reduced in size:
And if I tap on it again - it's size is so small that it appears invisible:
This doesn't happen on iOS5 or iOS6.
Is there something that I'm doing wrong here or any right method for reducing tab bar icon size?

Hi may be this is will useful for you.Give the dimension of your tab bar items 30x30 pixels and #2x is 60x60.This is working fine for me. Image inset give the all (0,0,0,0).

Related

Overlay the whole AppBar on the page content in windows phone 8.1

When app bar is present, the height of the app bar affects the content on the rest of the page.
For example, if the app bar has a Height of about 25px when ClosedDisplayMode="Minimal", the rest of the content on the page (rootGrid) would have its actual height of Screen Height - 25px. So the app bar is not overlay on page content.
This is visible especially when the content is VerticalAlignment="Center" or Bottom.
Is there any way to avoid this? Something like a ZIndex on the AppBar so that it is displayed over the page content and not trimming it on the bottom side of the screen.
It is possible to tell the renderer that the whole "window" should be used when rendering and not just the visible part. By calling Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow) the renderer will include the areas beneath the chrome of the window (ie the system tray on top of the screen and the app bar at the bottom). The chrome will always be on top of whatever is rendered from xaml.
ApplicationView is documented here.
If you don't want the system tray on the top of the screen to overlap the content, you'll have to compensate with a margin on the root container of your visible xaml.

xCode - Why can't I see this object on the view?

This might be a silly question, but why in the world can't I see the the following button that I simply dragged and dropped to the view from the interface builder?
I am using Simulator iPhone Retina (3.5 inch) / iOS 7. When I try to scroll to the bottom, the scrolling ends and I cannot see the button that I placed at the bottom. Why is that? Thanks.
EDIT: I didn't do anything fancy. I simply created a new single view app, and then dragged the button to the bottom of the view on storyboard and then clicked run.
Storyboard simulate size of 4 inch display. When you run it on 3.5 inch display, content at the bottom of the screen will be clipped.
Just add constraints to attach button to bottom of the screen.

Tableview not using all available space

I have an IOS application containing, amongst other view controllers, a view controller with a UIScrollView and UITableView. This is launched with
self.storyboard instantiateViewControllerWithIdentifier.
I hope this maybe something simple, but I cannot get the table view to use all its available space, i.e. the UITableView has enough height for say 4 rows, but it starts to make use of scroll bar when there is only 3 rows in the table.
Regarding the scrollview, I have some horizontal content which is only 25 in height, but if I make the UIScrollView anything less than 110 in height or so, then the horizontal content will only appear partially on screen or not at all.
Xcode 4.4.1 on OSX Lion, IOS 5.1
Any help will be appreciated.
Fixed the problem myself (Trying to find a host to put some screenshots. Will update).
I set the Bottom Bar from Inferred to Tab Bar in the Attribute Inspector and it now works. Both the previously unusable spaces in the ScrollBar and the TableView can now be used. These space were both of the size of the Tab bar. Took a while to work this out, as even before this change, the tab bar was showing on the simulator, so I didn't think it was Tab Bar related.

UINavigationBar does not position correctly on 4" or 3.5"

I'm having a really hard time making my application work with the new iPhone 5's screen. I can have the layout all set up for the 3.5" screen but when I change it to the 4" everything moves around and then it affects the 3.5". But my biggest issue is my navigation bar moves to the bottom on the screen every time I change the size.
I am using AutoLayout although I'd prefer not to, so I can allow iOS5 users to use my app.
This is what I mean:
The Navigation bar constraints are:
Top, Right, and Left: Superview.
Bottom: Top of the UIImageView below it.

XCode Redraw portrait layout with double high status bar

I'm having this issue with several screens in my app, but I'll explain what happens to my home screen. Hopefully the solution isn't as complicated as I'm thinking it will be. So my home screen has a logo at the top, a label(title) under that, 3 horizontal buttons under that, and finally, settings and info buttons in the bottom left and right hand corner respectively when if portrait orientation. In order to allow for landscape orientation, resizing masks were not able to achieve the look I wanted so I implemented the
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
method with an if and else statement, the "if" uses CGRectMakes to draw all of the elements where they should go in landscape layout, and the "else" redraws them back to their original places when changed back to portrait landscape. This all works very nicely. I remembered that we had to be able to handle the double high status bar, so I simulated it to see what it would do to my app. When I am on the home screen and toggle it on and off, the autoresizing of the items(which are set to adjust according to the top of the view) work nicely, by slightly squishing everything down a bit, and not hiding anything. I can toggle it off and on with no problems.
Now here's the problem:
When I have the double high status bar toggled on while on a different screen, then go back to my home screen, the resizing doesn't happen, and it redraws my screen full size according to the coordinates and sizes I have in the method I mentioned earlier, so the settings and info button are drawn halfway off the bottom of the screen. Same happens when switching from landscape back to portrait on the homescreen with the double high status bar already on.
Similarly, I have a map between a nav and tab bar on another page. When already on the page, and toggling it on and off, everything resizes nicely(the frame of the map changes height and the nav bar moves down). But again, I have a problem when switching to that screen from a different screen or from the landscape orientation, because instead of autoresizing appropriately, the map view and nav bar get pushed down behind the tab bar partially, obscuring the google trademark which is grounds for app rejection.
Sorry for the longwindedness, but I wanted to clearly describe what circumstances cause this problem. Any ideas would be greatly appreciated as I don't really have any idea how to approach this.
I've been trying to track down this problem myself. I think this happens because the autoresizing mask is only used when views are resized, and not when a new view is added to the scene.
For me, I wanted a settings view loaded from a nib and added on top of everything else. If the double-height bar was in effect when the view was added it would run off the bottom of the screen. To fix it you have to set the size and position of the view yourself when you load it. This is the code behind my working 'goto settings' button:
- (IBAction) settingsPressed:(id)_sender
{
NSArray* a = [[NSBundle mainBundle] loadNibNamed:#"SettingsView" owner:self options:nil];
SettingsView* settings = [a objectAtIndex:0];
settings.frame = self.view.bounds;
[[self view] addSubview:settings];
}
The important line being:
settings.frame = self.view.bounds;
Which, it would appear, classifies as a 'resize' and so the resizing-mask rules apply. I later added animations for the transition and it continues to work just fine.
Note: This method was in a View Controller.