Использование UIstackview для отображения различных UIViews - PullRequest
0 голосов
/ 27 марта 2019

У меня есть представление UIScroll, в котором есть UIView, которое называется shiftView. Это ShiftView вызовет определенный файл XIB в зависимости от значения сегментированного контроллера.

Все мои представления в xib имеют разную длину. Я хочу вызвать определенный файл xib и отобразить его в области shiftView. Однако у меня возникли трудности. Я выбрал свой shiftView и встроил его в stackView, а затем попытался изменить вызовы представления xib, однако это не сработало.

Первоначально я пытался установить представления как подпредставления, но и вызвать их на передний план. Это сработало для того, чтобы представить различные xib-представления, но проблема в том, что они имеют разную длину, так что я прокручивал вниз представления, которые все еще были видны.

    //original code: 
    if counter == 0 {

        simpleViewX = SimpleVC0().view
        simpleViewY = SimpleVC1().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)


    }

    if counter == 1 {
        simpleViewX = SimpleVC2().view
        simpleViewY = SimpleVC3().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 2 {
        simpleViewX = SimpleVC4().view
        simpleViewY = SimpleVC5().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 3 {
        simpleViewX = SimpleVC6().view
        simpleViewY = SimpleVC7().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 4 {
        simpleViewX = SimpleVC8().view
        simpleViewY = SimpleVC9().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 5 {
        simpleViewX = SimpleVC10().view
        simpleViewY = SimpleVC11().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 6 {
        simpleViewX = SimpleVC12().view
        simpleViewY = SimpleVC13().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

}

новый код:

simpleViewX = SimpleVC0().view UIStackView.init(arrangedSubviews: [simpleViewX!])

в исходном коде я менял представления, делая их подпредставлением и выводя на передний план, в этом новом коде я пытаюсь сделать представления компонентом UIStack.

...