首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的UITabBarItem定位

奇怪的UITabBarItem定位
EN

Stack Overflow用户
提问于 2013-01-20 23:09:14
回答 1查看 506关注 0票数 0

我正在尝试制作一个自定义的选项卡栏。我使用了setFinishedSelectedImage:finishedUnselectedImage:方法,该方法删除了苹果在uitabbaritem上的默认光泽效果。下面是我的代码:

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self customizeInterface];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIViewController *viewController1 = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
    UITabBarItem *tab1 = [[UITabBarItem alloc] initWithTitle:nil
                                                       image:[UIImage imageNamed:nil] tag:1];
    [viewController1 setTabBarItem:tab1];
    UITabBarItem *item = [[UITabBarItem alloc] init];

    [tab1 setFinishedSelectedImage:[UIImage imageNamed:@"icon_news.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_news.png"]];
    _tabBarController.tabBarItem = item;

    UIViewController *viewController2 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    UITabBarItem *tab2 = [[UITabBarItem alloc] initWithTitle:nil
                                                       image:[UIImage imageNamed:nil] tag:2];
    [viewController2 setTabBarItem:tab2];
    UITabBarItem *item1 = [[UITabBarItem alloc] init];

    [tab2 setFinishedSelectedImage:[UIImage imageNamed:@"icon_programme.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_programme.png"]];
    _tabBarController.tabBarItem = item1;


    UIViewController *viewController3 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    UITabBarItem *tab3 = [[UITabBarItem alloc] initWithTitle:nil
                                                       image:[UIImage imageNamed:nil] tag:3];
    [viewController3 setTabBarItem:tab3];
    UITabBarItem *item2 = [[UITabBarItem alloc] init];

    [tab3 setFinishedSelectedImage:[UIImage imageNamed:@"icon_map.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_map.png"]];
    _tabBarController.tabBarItem = item2;

    UIViewController *viewController4 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
    UITabBarItem *tab4 = [[UITabBarItem alloc] initWithTitle:nil
                                                       image:[UIImage imageNamed:nil] tag:4];
    [tab4 setFinishedSelectedImage:[UIImage imageNamed:@"icon_venues.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_venues.png"]];
    [viewController4 setTabBarItem:tab4];
    UITabBarItem *item3 = [[UITabBarItem alloc] init];

    [item3 setFinishedSelectedImage:[UIImage imageNamed:@"icon_venues.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_venues.png"]];
    _tabBarController.tabBarItem = item3;

     UIViewController *viewController5 = [[FourthViewController alloc] initWithNibName:@"FourthViewController" bundle:nil];
    UITabBarItem *tab5 = [[UITabBarItem alloc] initWithTitle:nil
                                                       image:[UIImage imageNamed:nil] tag:5];
    [viewController5 setTabBarItem:tab5];
    UITabBarItem *item4 = [[UITabBarItem alloc] init];

    [tab5 setFinishedSelectedImage:[UIImage imageNamed:@"icon_more.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon_more.png"]];
    _tabBarController.tabBarItem = item4;

    tabController.viewControllers = [NSArray arrayWithObjects:viewController1,
                                     viewController2,
                                     viewController3,
                                     viewController4,
                                     viewController5, nil];


    self.window.rootViewController = tabController;
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)customizeInterface
{
    UIImage* tabBarBackground = [UIImage imageNamed:@"navbar_bodyreal.png"];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];

    [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"navbar_object_current.png"]];

}

问题是图标位于标签栏上方。有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-01-20 23:56:16

您应该只设置行的相应UIViewConroller.Remove的tabbaritem属性。

代码语言:javascript
复制
_tabBarController.tabBarItem = itemx;

除此之外,标签栏项目的最佳分辨率应该是30x30像素。

http://www.idev101.com/code/User_Interface/sizes.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14425877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档