Xcution
V2EX  ›  Apple

请问一个 IOS 开发的问题,动态修改 PageViewController 的高度( Swift 开发)或者 PageViewController 如何根据每一页的内容高度自动变化

  •  
  •   Xcution · Feb 20, 2021 · 2102 views
    This topic created in 1900 days ago, the information mentioned may be changed or developed.
    我使用 PageViewController,但是 PageViewController 又不能直接到屏幕底部,它的下方还要显示其他内容,由于每一页内容高度不相同,如果我直接定死高度的话,要么会遮挡要么就是会显示多余的空白内容,我就想在滑动的时候根据内容的高度动态修改 PageViewController 的高度,但是设置好像不行,永远都是显示的第一次显示的高度。我又不知道我这种写法到底对不对,按理说 PageViewController 的高度会根据内容自动适应应该才是最好的,但是我找了很久都没找到,就只有想自己动态设置高度,但是好像还是不行,因为刚刚接触 IOS 开发,对这个内容自适应这块有点蒙,安卓的话直接一个属性就搞定了,好像 IOS 也没有,头疼,这问题搞了几天了,还是没法解决,求各位大佬指点一下
    massacreformash
        1
    massacreformash  
       Feb 20, 2021
    PageViewController 的坑太多了,一般都是考虑自己造个轮子来用
    好久不做 iOS 了,我记得应该是用 UIScrollView 套 UIScrollView 就可以实现,算好各种 Offset 就可以了
    这样的话,可以自己在点击切换 page 的时候,各种魔改想要的效果
    Xcution
        2
    Xcution  
    OP
       Feb 20, 2021
    @massacreformash 使用 UIScrollView 确实也可以实现 PageViewController 的功能,就想着有了现成的了,就没有自己再写了
    massacreformash
        3
    massacreformash  
       Feb 20, 2021
    @Xcution 我有点儿忘了在 iOS 的哪个版本里面 PageViewController 有坑了,会在特定情况下丢 ViewController 的引用导致崩溃,而且一直没修复。不知道现在修了没有。
    我个人还是建议弄个自定义的
    CommandZi
        4
    CommandZi  
       Feb 20, 2021
    不太明白你说的效果,按理说 Autolayout 已经能实现自适应
    Building
        5
    Building  
       Feb 20, 2021 via iPhone
    一般来说官方提供的控件,就是这么死板的。
    ai277014717
        6
    ai277014717  
       Feb 20, 2021
    看了下文档。PageViewController delegate 中没有调节 height 的函数。可以通过动态的修改 PageViewController 中 view 的 height 或者相关约束来达到目的。
    leon0918
        7
    leon0918  
       Feb 20, 2021
    用代理自己算高度,赋值。是很麻烦的,先找找 github,不行自己封装一个。
    ihwbunny
        8
    ihwbunny  
       Feb 20, 2021
    这种纯技术的讨论,给坛子增辉不少
    JHExp
        9
    JHExp  
       Feb 20, 2021
    你的每一页内容都是 uiscrollview 的子类的话 固定高度也能滑啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5814 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.