首頁>Program>source

我想在匯航欄中添加圖像背景。

對吗?

//set custom background image
UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NavigationBackground.png"]];
[self.navigationBar insertSubview:backgroundView atIndex:0];
[backgroundView release];
最新回復
  • 5月前
    1 #

    這是来自@luvieere鏈接的代碼。 將此代碼粘贴到上方的rootview控製器中 @implementation rootviewController

    @implementation UINavigationBar (CustomImage)
    - (void)drawRect:(CGRect)rect {
        UIImage *image = [UIImage imageNamed:@"NavigationBar.png"];
        [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
    }
    @end
    

    从iOS 5開始,有一種官方方法可以做到這一點. (請參阅iOS開發者庫)

    // someplace where you create the UINavigationController
    if ([navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
        UIImage *image = [UIImage imageNamed:@"NavigationBar.png"];
        [navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
    }
    

    但是,仍然保留旧代碼以實現向後相容性,除非您真的想放棄iOS 4及更低版本。

  • 5月前
    2 #

    仅您的代碼無法做到這一點,您必须在其中編寫一个類別 使其工作.有两種方法可以實現此目的:第一種方法是將圖像製作為 UINavigationBar的子视圖 並將其重新帶到每个 UIViewController的前面 的 viewDidAppear 方法.但是,据報道這与覆盖正確的 UIBarButtonItem有一些問题 .另一種方法涉及覆盖

    - (void)drawRect:(CGRect)rect

    並在那裏绘製圖像.這两个博客讨論中都廣泛讨論了這两个方面。

  • 5月前
    3 #

    最簡單的方法是設置 UINavigationBar 層內容。

    NSString *barBgPath = [[NSBundle mainBundle] pathForResource:@"mybgimage" ofType:@"png"];
    [nBar.layer setContents: (id)[UIImage imageWithContentsOfFile: barBgPath].CGImage];
    

    缺點是按钮不是根据正確的色調生成的,但是您可以將匯航欄颜色設置為最接近bg圖像的颜色,並且應该註意色調。

  • 5月前
    4 #

    我会這樣做 在appdelegate中類似

    + (void)Generalstyle {
        //navigationbar
        UINavigationBar *navigationBar = [UINavigationBar appearance];
        [navigationBar setBackgroundImage:[UIImage imageNamed:@"navigation.png"] forBarMetrics:UIBarMetricsDefault];
    }
    

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [[self class] Generalstyle];
    }
    

    .h檔案:

    + (void) Generalstyle;
    

  • 5月前
    5 #

    在ios5中,我在 AppDelegate.m中設置了匯航欄背景圖片(對於所有匯航欄圖片) :

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [application setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
        UIImage *navBarBackgroundImage = [UIImage imageNamed:@"nav_bg"];
        [[UINavigationBar appearance] setBackgroundImage:navBarBackgroundImage forBarMetrics:UIBarMetricsDefault];
        return YES;
    }
    

  • textview:為完整的android應用程式添加自定義字型
  • python:查詢點是否位於點云的凸包中的有效方法是什麼?