Здесь вы идете. Вам просто нужно установить класс 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)
}
}
}
}
}
Просто создайте изображение с Hight из 44px, и установить прозрачный фон, сделать черный облицованный участок в нижней части, и установить этот образ, он будет создайте тот же эффект, что и первое изображение. –
Кажется, что в iPhone X эта проблема возникает, когда изображение с изображением индикатора выбора имеет вертикальное центральное ограничение между верхней частью панели вкладок и нижней частью экрана (из «безопасной зоны»). Правильное решение высоты не работает сейчас. – Itachi