Тень iOS блокируется дочерними представлениями братьев и сестер

У меня проблема, когда тень моего представления блокируется дочерним представлением братьев и сестер.

Вот как выглядит моя иерархия представлений:

ViewController View
    NavigationView with shadow
       TabBar
    ContainerView
       ViewController view
          ScrollBar
             ContentView
                Item view's that block the shadow

Мой взгляд выглядит так:

введите здесь описание изображения

Цвет фона ContainerView — настраиваемый серый цвет, а цвет фона ContentView — чистый цвет. Если я не установлю цвет фона ContentView на Clear, тень вообще не появится.

Таким образом, тень все еще видна в прокручиваемом представлении содержимого. Но всякий раз, когда я прокручиваю дочерний элемент представления содержимого за панелью вкладок, тень полностью исчезает.

Я попытался добавить 4 NavigationView друг в друга, а затем добавить TabBar в последнее представление, чтобы моя иерархия выглядела так:

ViewController View
    NavigationView with shadow
       NavigationView with shadow 1
          NavigationView with shadow 2 
              NavigationView with shadow 3
                  NavigationView with shadow 4
                     TabBar
    ContainerView
       ViewController view
          ScrollBar
             ContentView
                Item view's that block the shadow

Но это не помогло.

Есть ли этому решение?


ios
person Siamaster    schedule 30.05.2019    source источник
comment
Являются ли вы NavigationView и TabBar пользовательскими представлениями или используете UINavigationBar и UITabBar?   -  person VRAwesome    schedule 30.05.2019
comment
Вы можете попробовать 2 способа: 1. Изменить иерархию, сначала добавить TabBar, а затем добавить NavigationView. 2. Держите расстояние между NavigationView и TabBar ровно столько же и еще 2-3 пикселя столько пикселей, сколько вы создаете радиус тени NavigationView.   -  person VRAwesome    schedule 30.05.2019
comment
Я пробовал это. Это выглядит странно, когда я прокручиваю. Мне нужно, чтобы мои элементы полностью прокручивались до нижней части UITabarBar NavigationView, это UIVIew. TabBar — это UITabBar   -  person Siamaster    schedule 30.05.2019
comment
Итак, вы имеете в виду, что ваш скроллер видит за панелью вкладок и видит из того пространства, которое мы держим между навигацией и панелью вкладок?   -  person VRAwesome    schedule 30.05.2019
comment
Какова рамка вашего прокрутки, я имею в виду происхождение?   -  person VRAwesome    schedule 30.05.2019
comment
Но я хочу видеть тень над картами   -  person Siamaster    schedule 30.05.2019


Ответы (1)


Итак, вы говорите, что тень вашего Tabbar скрывается, когда вы прокручиваете. И Твоя карта скроет эту тень. И когда вы прокручиваете, это происходит: Скрытая тень

ViewController View
    NavigationView with shadow
       TabBar
    ContainerView
       ViewController view
          ScrollBar
             ContentView
                Item view's that block the shadow

Измените эту иерархию только в раскадровке на:

ViewController View

  |ContainerView
  |   ViewController view
  |      ScrollBar
  |         ContentView
  |            Item view's that block the shadow
  |
  |NavigationView with shadow
      TabBar

И предположим, что: Tabbar находится внутри NavigationView(UIView). NavigationView(UIView) имеет тень. Внизу навигации есть ContainerView(UIView).

Итак, когда вы прокручиваете свою страницу:

Вкладка с тенью

И это будет ваша иерархия:

Вид сверху

person VRAwesome    schedule 30.05.2019
comment
Великолепно! Потрясающий! Спасибо. У меня его не было в раскадровке, но я использовал BringSubviewToFront в своем представлении навигации, и это сработало. И вы почти в точности скопировали мою точку зрения. Прохладный! - person Siamaster; 31.05.2019