2015-01-09 519 views
0

我想在我的iOS應用程序中使用後退按鈕的自定義圖像。當我使用以下代碼時,我在後退按鈕中看到一條未解釋的行。後退按鈕自定義圖像

UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), forBarMetrics: .Default) 

    var backImage: UIImage = UIImage(named: "back-button")! 
    var barBackBtnImg: UIImage = backImage.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 14, 0, 0)) 
    UIBarButtonItem.appearance().setBackButtonBackgroundImage(barBackBtnImg, forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default) 

附加的是它現在是什麼的截圖。

如果我刪除

var barBackBtnImg: UIImage = backImage.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 14, 0, 0)) 

它看起來像這樣:

enter image description here

請幫助。提前致謝。

+0

發生這種情況是因爲您已告知它可調整大小。您提供的cap insets正在使操作系統抓住最右邊的像素並對其進行拉伸。 – 2015-01-09 18:47:34

+0

請參閱已編輯的問題。我試圖刪除可調整大小的代碼。 – 2015-01-12 18:57:36

+0

後退按鈕將強加cap insets以嘗試「很好地」拉伸圖像。如果你想讓你的圖像處於特定位置,可以執行以下兩項操作之一:爲按鈕設置一個空白圖像,然後將箭頭添加爲按鈕的「UIImageView」子視圖並將其定位爲您喜歡的位置;或者您可以將透明填充添加到圖像的邊緣並允許拉伸。 – 2015-01-12 19:00:25

回答

2

這對我有效!

var backImage: UIImage = UIImage(named: "back-button")! 
backImage = backImage.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal) 
UINavigationBar.appearance().backIndicatorImage = backImage 
UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage