V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Xcution
V2EX  ›  Apple

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

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