2013-03-15 25 views
3

我有子类UITabBar并重写drawRect:方法使其透明(并使其看起来像我需要的)。我遇到的问题是添加到UITabBarController的视图不能覆盖整个屏幕,但结束底部49像素,所以即使我有透明的tabbar,我也看不到它背后的东西。如何创建半透明(背后有内容)UITabBar

有没有适当的方式如何在UITabBarController中设置UIView的大小来覆盖整个屏幕?

附:我知道在tabbar后面显示内容并不是个好主意。我不想在那里显示任何内容,只是艺术,这是特定于每个视图,并需要通过tabbar可见。

+0

你已经解决了这个问题?什么选择适合你? – 2013-07-09 15:39:36

+0

我最终做了我自己的标签栏控制器,它比我认为的 – Lope 2013-07-09 20:50:40

回答

1

如果你想有UITabBar背后的内容,我看到两个选项:

  • 不要使用UITabBarController - 这肯定会工作,因为只要你想,你可以定位的看法,这是不所以难以实现它。

  • 尝试在视图上关闭clipsToBounds并将视图放在视图外。

    // UIViewController contained in UITabBarController: 
    self.view.clipsToBounds = NO; 
    UIView *viewBehindTabBar = [[UIView alloc] init]; 
    viewBehindTabBar.frame = CGRectMake(0, self.view.bounds.size.height, 
                self.view.bounds.size.width, 49); 
    // autoresizing mask, background color, ... 
    [self.view addSubview:viewBehindTabBar]; 
    
+0

我试图设置clipsToBounds为false,但我有麻烦调整视图到整个屏幕的大小。我猜你对开槽UITabBarController是正确的,在没有它的情况下不应该很难做到 – Lope 2013-03-15 13:16:25

+1

你可以用tabBarController.tabBar.alpha = 0.8来伪造效果;明显的缺点是tabbaritems也变得半透明。最好只是为了这个实例推出自己的产品。 – 2013-10-20 08:45:24

-1

您可以简单地创建一个UITabBar或UITabBarController类别 并设置它的Alpha

是这样的: -

@implementation UITabBarController (Translucent) 
- (void)createImage 
{ 
    [self.tabBar setAlpha:0.1]; 
} 
@end 

,你甚至可以在设定的drawRect阿尔法。

+0

更容易,这将使tabbar透明(我已经拥有),并允许您查看UITabBarController视图(即UIWindow)的背后。它不会使内容UIView达到我所需要的屏幕底部 – Lope 2013-03-15 12:50:00