3

「backBarButtonItem」をカスタマイズする方法について支援が必要ですが、スタイルを継承して「BackBarButtom」からの移行を維持したいので、LeftBarButtomItem を使用したくありません。

わかりましたので、私が得たものは次のとおりです。

UIBarButtonItem* barbtnItem = [[UIBarButtonItem alloc]initWithCustomView:  [ArrivalProto ArrivalBtnTypeBack]];

[ArrivalProto ArrivalBtnTypeBack]setBackgroundImage と setImage の両方を持つカスタム UIbutton を返してくれます。

そして、これを追加して BackBarButton をカスタマイズするだけです。

[self.navigationItem setBackBarButtonItem: barbtnItem];

しかし、いや。単純な通常の戻るボタン:(((これは機能しているようですが:

//self.navigationItem setLeftBarButtonItem:barbtnItem];

そしてこれも:

UIImage *btnTrnspBgrImg30 = [[UIImage imageNamed:@"trspBlackBtn30"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)]; 
 [[UIBarButtonItem appearance] setBackButtonBackgroundImage:btnTrnspBgrImg30      forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

情報:

[self.navigationItem setBackBarButtonItem: <#(UIBarButtonItem *)#>];
[self.navigationItem setLeftBarButtonItem:<#(UIBarButtonItem *)#>]
4

1 に答える 1

3

iOS5では、外観プロキシを使用してほとんどすべてのコントロールの外観をカスタマイズする優れた新しい方法があります。外観プロキシを使用すると、アプリケーション全体でコントロールの外観を変更できます。以下は、外観プロキシで作成されたカスタムの戻るボタンの例です。[UIBarButtonItem appearance]

ここに画像の説明を入力

以下のコード例を使用して、通常の状態と強調表示された状態のカスタム イメージで戻るボタンを作成します。appDelegate から次のメソッドを呼び出しますapplication:didFinishLaunchingWithOptions:

- (void) customizeAppearance {

UIImage *i1 = [[UIImage imageNamed:@"custom_backButton_30px"]
                      resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 6)];
UIImage *i2 = [[UIImage imageNamed:@"custom_backButton_24px"] 
                      resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 6)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i1 
                              forState:UIControlStateNormal 
                              barMetrics:UIBarMetricsDefault];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i2 
                              forState:UIControlStateNormal 
                              barMetrics:UIBarMetricsLandscapePhone];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i1
                              forState:UIControlStateHighlighted 
                              barMetrics:UIBarMetricsDefault];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i2 
                              forState:UIControlStateHighlighted 
                              barMetrics:UIBarMetricsLandscapePhone];
}

これは簡単な例です。通常、通常の状態と強調表示された (押された) 状態の画像を分けたいと思うでしょう。

他のコントロールの外観をカスタマイズすることに興味がある場合は、いくつかの良い例がここにあります: http://ios.biomsoft.com/2011/10/13/user-interface-customization-in-ios-5/

于 2013-03-12T15:35:02.427 に答える