8

UINavigationBar にカスタム イメージを配置したいのですが、

この2つのコードスニペットを試したところ、

[self.navigationItem setTitleView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]];

    UIButton *logoView = [[UIButton alloc] initWithFrame:CGRectMake(0,0,70,30)];
    [logoView setBackgroundImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];
    [logoView setUserInteractionEnabled:NO];
    self.navigationItem.titleView = logoView;

デバイスで見ることができる画像がぼやけているか、伸びています。

180*40(幅*高さ)の解像度で画像を作成しました

画像の正確なサイズを知りたいです。何だろう?

前もって感謝します。

4

3 に答える 3

22

これを使って

UIImageView *navigationImage=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 98, 34)];
navigationImage.image=[UIImage imageNamed:@"topNav-logo.png"];

UIImageView *workaroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 98, 34)];
    [workaroundImageView addSubview:navigationImage];
    self.navigationItem.titleView=workaroundImageView;

お役に立てれば。

于 2013-07-18T10:02:08.900 に答える
3

サイズ(320 x 44)の画像を作成し、以下のようにタイトルとして設定します。

self.navigationItem.titleView = yourImageView;

以下のような例全体を参照してください...

- (void)viewDidLoad{
        UIImageView* imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
        self.navigationItem.titleView = imgView;
        [imgView release];
}
于 2013-07-18T09:55:31.023 に答える
1

最初に titleView を初期化する必要があります。次に、imageView をサブビューとして設定します。

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];

self.navigationItem.titleView = [[UIView alloc] initWithFrame:imageView.bounds];
[self.navigationItem.titleView addSubview:imageView];
于 2013-07-18T09:50:56.543 に答える