0

私は iOS 6.1 を使用しており、ビューが読み込まれるときにプログラムで UINavigationItem にタイトルが「Info」のカスタム幅の UIBarButtonItem を追加したいと考えています。これを達成するために画像を使用したくありません。

UIBarButtonItem の幅を変更する方法についていくつかのスレッドを読みましたが、どれもうまくいかないようです。

これを試しましたが、ボタンが表示されません:

- (void)viewDidLoad
{
    UIView *infoButtonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 44)];
    UIBarButtonItem *infoButton2 = [[UIBarButtonItem alloc] initWithCustomView:infoButtonView];

    [infoButton2 setStyle:UIBarButtonItemStyleBordered];
    [infoButton2 setTitle:@"Info"];
    self.navigationItem.rightBarButtonItem = infoButton2;
}

このコードの何が問題になっていますか?

4

2 に答える 2

2
//This worked for me    
UIButton *searchButton =[[UIButton alloc]init];
        searchButton.frame=CGRectMake(0, 0, 200, 40);
        [searchButton setTitle:@"Info" forState:UIControlStateNormal];
         searchButton.backgroundColor= [UIColor greenColor];
        [searchButton addTarget:self action:@selector(onFilter) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *searchBarButton=[[UIBarButtonItem alloc] initWithCustomView:searchButton] ;
        self.navigationItem.rightBarButtonItem = searchBarButton;
于 2013-08-21T04:00:46.103 に答える
0

このようにボタンを追加することもできます..

 - (void)viewDidLoad
    {
      UIView *infoButtonView = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 50, 44)];
        [infoButtonView setBackgroundColor:[UIColor clearColor]];

        UIButton *button1 = [[UIButton alloc]initWithFrame:CGRectMake(0,15,45,21)];
        [button1 setTitle:@"Info" forState:UIControlStateNormal];
        button1.backgroundColor=[UIColor redColor];
        [infoButtonView addSubview:button1];

        UIBarButtonItem *infoButton2 = [[UIBarButtonItem alloc] initWithCustomView:infoButtonView];
        self.navigationItem.rightBarButtonItem = infoButton2;
    }
于 2013-08-21T04:50:42.403 に答える