2015-05-04 3 views
3

У меня есть эта спецификация:IOS UITabBar selectionIndicatorImage Y позиция

enter image description here

Но, у меня есть это:

enter image description here

У меня есть этот код:

self.mTabBar.selectionIndicatorImage = UIImage(named: "footer-blue-line") 

Как могу ли я установить позицию Y для selectionIndicatorImage?

+3

Просто создайте изображение с Hight из 44px, и установить прозрачный фон, сделать черный облицованный участок в нижней части, и установить этот образ, он будет создайте тот же эффект, что и первое изображение. –

+1

Кажется, что в iPhone X эта проблема возникает, когда изображение с изображением индикатора выбора имеет вертикальное центральное ограничение между верхней частью панели вкладок и нижней частью экрана (из «безопасной зоны»). Правильное решение высоты не работает сейчас. – Itachi

ответ

1

Почему вы не используете одно «выбранное» изображение с голубой линией под ним?

+0

На самом деле, у меня есть только два изображения. Я пытаюсь с этим справиться. Если нет решения, я буду использовать другое изображение –

0

Здесь вы идете. Вам просто нужно установить класс Tab Bar этого класса в интерфейс строитель

class MyCustomTabBar: UITabBar 
{ 
    var didInit = false 
    override func layoutSubviews() 
    { 
     super.layoutSubviews() 

     if didInit == false 
     { 
      didInit = true 
      for subview in subviews { 
       // can't hookup to subviews, so do layer.sublayers 
       subview.layer.addObserver(self, forKeyPath: "sublayers", options: .New, context: nil) 
      } 
     } 
    } 

    deinit 
    { 
     for subview in subviews 
     { 
      subview.layer.removeObserver(self, forKeyPath: "sublayers") 
     } 
    } 

    override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) 
    { 
     // layer.delegate is usually the parent view 
     if let l = object as? CALayer, tbButton = l.delegate as? UIView where tbButton.window != nil 
     { 
      for v in tbButton.subviews 
      { 
       if String(v.dynamicType) == "UITabBarSelectionIndicatorView" { 
        v.setYOrigin(3) 
       } 
      } 
     } 
    } 
} 
Смежные вопросы