Reputation: 2527
I am wondering if there is a way to accomplish a tab bar with only large icons, I have attached an image below for reference. I am not interested in creating my own tab bar controller, and managing the view controllers myself.
Upvotes: 1
Views: 4655
Reputation: 19242
To add to @limon's answer, if you want to change the height of the custom UITabBar, I found from another SO answer, sorry do not remember web link reference, the following code did the trick and locked it at the bottom as well, where I found with @limon's code the UITabBar was not position flush at bottom out of the box with his code:
override func viewWillLayoutSubviews() {
//UITabBar Height
var tabFrame: CGRect = self.tabBar.frame
tabFrame.size.height = 75
tabFrame.origin.y = self.view.frame.size.height - 75
self.tabBar.frame = tabFrame
}
Obviously you want to remove the similar code from limon's answer or maybe move his entire code snippet to viewWillLayoutSubviews
I didn't try that, I called his code in my viewDidLoad
Upvotes: 1
Reputation: 3212
Here is my solution, i created a class which is a subclass of UITabBarController
.
CustomTabBarController.h
@interface CustomTabBarController : UITabBarController<UITabBarControllerDelegate>
@property (strong, nonatomic) IBOutlet UITabBar *tabBar;
@end
CustomTabBarController.m
- (void)viewDidLoad
{
CGRect tabBarFrame = self.tabBar.frame ;
tabBarFrame.origin.y -= kOrigin;
tabBarFrame.size.height = kTabBarHeight;
self.tabBar.frame = tabBarFrame;
self.tabBarController.delegate = self;
/* Tab Bar Background */
UIImage *tabBarBackgroundImage = [UIImage imageNamed:@"tabBarBackgroundImage.png"];
[[UITabBar appearance] setBackgroundImage:tabBarBackgroundImage];
/* Tab Bar Item */
UIButton *surveyButton = [UIButton buttonWithType:UIButtonTypeCustom];
[surveyButton addTarget:self action:@selector(surveyButtonDidSelect) forControlEvents:UIControlEventTouchUpInside];
surveyButton.tag = surveyButtonTag;
[surveyButton setBackgroundImage:[UIImage imageNamed:@"someimage.png"] forState:UIControlStateNormal];
CGRect surveyButtonFrame = surveyButton.frame ;
surveyButtonFrame.origin.x = /*Proper value in your case */;
surveyButtonFrame.origin.y = /*Proper value in your case */;
surveyButtonFrame.size.height = /*Proper value in your case */ ;
surveyButtonFrame.size.width =/*Proper value in your case */;
surveyButton.frame = surveyButtonFrame;
[self.tabBar addSubview:surveyButton];
UIButton *statusButton = [UIButton buttonWithType:UIButtonTypeCustom];
statusButton.tag = statusButtonTag;
[statusButton addTarget:self action:@selector(statusButtonDidSelect) forControlEvents:UIControlEventTouchUpInside];
[statusButton setBackgroundImage:[UIImage imageNamed:@"someimage.png"] forState:UIControlStateNormal];
CGRect statusButtonFrame = statusButton.frame ;
statusButtonFrame.origin.x = /*Proper value in your case */;
statusButtonFrame.origin.y = /*Proper value in your case */;
statusButtonFrame.size.height = /*Proper value in your case */;
statusButtonFrame.size.width = /*Proper value in your case */;
statusButton.frame = statusButtonFrame;
[self.tabBar addSubview:statusButton];
}
-(void)surveyButtonDidSelect
{
self.selectedIndex = 0 ;
}
-(void)statusButtonDidSelect
{
self.selectedIndex = 1;
}
It's working for me,and i got no problem. Hope, it helps.
Upvotes: 5
Reputation: 840
The max size for the image in a tab bar on an iPhone 5/iPhone 4 is 96 x 64 so you are somewhat limited there without rolling your own. Though in your example image those may fit in the constraints.
Upvotes: 0