UITabBarItem内的图像位置

时间:2012-09-15 12:38:14

标签: iphone objective-c uitabbarcontroller uitabbaritem

我正在使用代码显示带有项目的UITabBar,我下载了一个示例,显示带有“收藏夹”“联系人”系统图标的项目......

UITabBarItem *favorites = [[UITabBarItem alloc] initWithTitle:nil image:a1 tag:0];
UITabBarItem *topRated = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemTopRated tag:1];
UITabBarItem *featured = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:2];
UITabBarItem *recents = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemRecents tag:3];

我想使用自己的图像,所以我更改了第一行(收藏夹),但是当我设置它时,图像从中间开始,并且始终保持标题的小位置,即使它是空的。

如何控制这些项目中的图像位置?并禁用空标题位置?

1 个答案:

答案 0 :(得分:0)

这是一个相当古老的问题,但即使是旧问题也需要爱:)

因此,如果您仍然遇到此问题,可以使用UIViewController标签栏项目图片插图:tabBarItem.imageInsets

您可以在视图控制器上设置它,您将分配给标签栏控制器的viewControllers属性。

这是一个子类标签栏控制器的快速版本,它将始终确保所有图像对齐得更低。

override func setViewControllers(viewControllers: [AnyObject], animated: Bool) {
    super.setViewControllers(viewControllers, animated: animated)

    let array = viewControllers as! [UIViewController]
    for controller in array {
        controller.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
    }
}