Совместное использование фонового представления между вкладками на UITabBarController - PullRequest
1 голос
/ 15 апреля 2010

Возможно ли иметь один и тот же фон между вкладками в UITabBarController без необходимости устанавливать одинаковый фон для всех видов? Я хочу поместить представление в фоновом режиме, которое периодически делает очень короткую, не ресурсоемкую анимацию. При переключении вкладок хотелось бы, чтобы эта анимация сохранялась. Я читал, как это сделать для UINavigationControllers, но не нашел никаких советов для UITabBarController.

Ответы [ 2 ]

5 голосов
/ 22 апреля 2010

Я создал категорию дополнений UITabBarController, которая позволяет вам делать это. Имейте в виду, что выбранный UIViewController должен быть прозрачным, чтобы вы могли видеть фоновое изображение.

// UITabBarController + CCAdditions.h

@interface UITabBarController (CCAdditions) 

- (void) setBackgroundImage:(UIImage *)i;

@end

// UITabBarController + CCAdditions.m

#import "UITabBarController+CCAdditions.h"

@implementation UITabBarController (CCAdditions)

- (void) setBackgroundImage:(UIImage *)i {
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)];
    imageView.backgroundColor = [UIColor colorWithPatternImage:i];  
    [[self view] addSubview:imageView];
    [[self view] sendSubviewToBack:imageView];
    [[self view] setOpaque:NO];
    [[self view] setBackgroundColor:[UIColor clearColor]];
    [imageView release];
}

@end

// пример использования в приложении

#import "UITabBarController+CCAdditions.h"


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [tabBarController setBackgroundImage:[UIImage imageNamed:@"icon.png"]];
    [tabBarController.view setNeedsDisplay];
    return YES;
}

Я использую colorWithPatternImage вместо backgroundImage, потому что он позволяет мозаику при необходимости

0 голосов
/ 19 апреля 2010

Создайте контроллер основного вида, у которого будет фон, затем из этого контроллера добавьте другие виды с прозрачным фоном, вы также можете поместить свой фон в окно приложения.

Thierry

...