2015-09-13 2 views
3

Я хочу, чтобы глобально изменить навигационную панель кнопку назад, так что у меня есть это:IOS - Заменил кнопку назад слишком близко к краю

UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(-100, -5000), forBarMetrics: .Default) 
     var backImage: UIImage = UIImage(named: "BackButton")! 
     backImage = backImage.imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, 0, 20)) 
     UINavigationBar.appearance().backIndicatorImage = backImage 
     UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage 

Но обратно изображение слишком близко к левой части экрана. Как перенести его дальше вправо?

enter image description here

+1

Вы пытались настроить 'UIEdgeInsetsMake'? У вас есть это, попробуйте: 'UIEdgeInsetsMake (0, 20, 0, 20)'. Он не будет перемещать кнопку, но она переместит изображение. – CaptJak

ответ

6

Просто настроить реальное изображение.

extension UIImage { 
    func imageWithInsets(insets: UIEdgeInsets) -> UIImage { 
     UIGraphicsBeginImageContextWithOptions(
     CGSizeMake(self.size.width + insets.left + insets.right, 
       self.size.height + insets.top + insets.bottom), false, self.scale) 
     let context = UIGraphicsGetCurrentContext() 
     let origin = CGPoint(x: insets.left, y: insets.top) 
     self.drawAtPoint(origin) 
     let imageWithInsets = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return imageWithInsets 
    } 
} 
2

Вам нужно настроить left положение на UIEdgeInsetsMake.

Вы уже называют его здесь:

backImage = backImage.imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, 0, 20)) 

Как так:

backImage = backImage.imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50)) 
+0

Это не влияет на положение кнопки. –

+0

Fudge, я должен читать лучше. Отредактировано @StefanKendall. – CaptJak

+0

проверит сегодня вечером –

Смежные вопросы