Controller's view with different layouts in cell using size classes












0















I have a custom controller who's view I add to two different cells.



The frame of one cell is wider than higher (kind of landscape) and the other cell is higher than wider (portrait).



My controller is designed in storyboard using different size classes to be able to show different layouts when I push the controller (works like charm).



I hoped adding this controller's view to the two cell's contentView would give me the same functionality, unfortunately it does not :(



How can I achieve that the layout gets adapted the same way as when I push the controller?










share|improve this question



























    0















    I have a custom controller who's view I add to two different cells.



    The frame of one cell is wider than higher (kind of landscape) and the other cell is higher than wider (portrait).



    My controller is designed in storyboard using different size classes to be able to show different layouts when I push the controller (works like charm).



    I hoped adding this controller's view to the two cell's contentView would give me the same functionality, unfortunately it does not :(



    How can I achieve that the layout gets adapted the same way as when I push the controller?










    share|improve this question

























      0












      0








      0








      I have a custom controller who's view I add to two different cells.



      The frame of one cell is wider than higher (kind of landscape) and the other cell is higher than wider (portrait).



      My controller is designed in storyboard using different size classes to be able to show different layouts when I push the controller (works like charm).



      I hoped adding this controller's view to the two cell's contentView would give me the same functionality, unfortunately it does not :(



      How can I achieve that the layout gets adapted the same way as when I push the controller?










      share|improve this question














      I have a custom controller who's view I add to two different cells.



      The frame of one cell is wider than higher (kind of landscape) and the other cell is higher than wider (portrait).



      My controller is designed in storyboard using different size classes to be able to show different layouts when I push the controller (works like charm).



      I hoped adding this controller's view to the two cell's contentView would give me the same functionality, unfortunately it does not :(



      How can I achieve that the layout gets adapted the same way as when I push the controller?







      ios swift uistoryboard size-classes






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 23 '18 at 20:24









      palmepalme

      1,25321227




      1,25321227
























          1 Answer
          1






          active

          oldest

          votes


















          0














          What I end up doing was adding the mentioned controller to its parent controller (the one that holds the cells) and then change the TraitCollection with the help of setOverrideTraitCollection(:forChild:). In my case it was changing the verticalSizeClass like this:



          setOverrideTraitCollection(UITraitCollection(verticalSizeClass: .compact), forChild: viewController)
          addChild(landscapeAudioPlayerController)





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452572%2fcontrollers-view-with-different-layouts-in-cell-using-size-classes%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            What I end up doing was adding the mentioned controller to its parent controller (the one that holds the cells) and then change the TraitCollection with the help of setOverrideTraitCollection(:forChild:). In my case it was changing the verticalSizeClass like this:



            setOverrideTraitCollection(UITraitCollection(verticalSizeClass: .compact), forChild: viewController)
            addChild(landscapeAudioPlayerController)





            share|improve this answer




























              0














              What I end up doing was adding the mentioned controller to its parent controller (the one that holds the cells) and then change the TraitCollection with the help of setOverrideTraitCollection(:forChild:). In my case it was changing the verticalSizeClass like this:



              setOverrideTraitCollection(UITraitCollection(verticalSizeClass: .compact), forChild: viewController)
              addChild(landscapeAudioPlayerController)





              share|improve this answer


























                0












                0








                0







                What I end up doing was adding the mentioned controller to its parent controller (the one that holds the cells) and then change the TraitCollection with the help of setOverrideTraitCollection(:forChild:). In my case it was changing the verticalSizeClass like this:



                setOverrideTraitCollection(UITraitCollection(verticalSizeClass: .compact), forChild: viewController)
                addChild(landscapeAudioPlayerController)





                share|improve this answer













                What I end up doing was adding the mentioned controller to its parent controller (the one that holds the cells) and then change the TraitCollection with the help of setOverrideTraitCollection(:forChild:). In my case it was changing the verticalSizeClass like this:



                setOverrideTraitCollection(UITraitCollection(verticalSizeClass: .compact), forChild: viewController)
                addChild(landscapeAudioPlayerController)






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 25 '18 at 22:43









                palmepalme

                1,25321227




                1,25321227
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452572%2fcontrollers-view-with-different-layouts-in-cell-using-size-classes%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Wiesbaden

                    Marschland

                    Dieringhausen