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

2021-02-20 10:26:38 +08:00
 Xcution
我使用 PageViewController,但是 PageViewController 又不能直接到屏幕底部,它的下方还要显示其他内容,由于每一页内容高度不相同,如果我直接定死高度的话,要么会遮挡要么就是会显示多余的空白内容,我就想在滑动的时候根据内容的高度动态修改 PageViewController 的高度,但是设置好像不行,永远都是显示的第一次显示的高度。我又不知道我这种写法到底对不对,按理说 PageViewController 的高度会根据内容自动适应应该才是最好的,但是我找了很久都没找到,就只有想自己动态设置高度,但是好像还是不行,因为刚刚接触 IOS 开发,对这个内容自适应这块有点蒙,安卓的话直接一个属性就搞定了,好像 IOS 也没有,头疼,这问题搞了几天了,还是没法解决,求各位大佬指点一下
1231 次点击
所在节点    Apple
9 条回复
massacreformash
2021-02-20 10:38:30 +08:00
PageViewController 的坑太多了,一般都是考虑自己造个轮子来用
好久不做 iOS 了,我记得应该是用 UIScrollView 套 UIScrollView 就可以实现,算好各种 Offset 就可以了
这样的话,可以自己在点击切换 page 的时候,各种魔改想要的效果
Xcution
2021-02-20 10:46:30 +08:00
@massacreformash 使用 UIScrollView 确实也可以实现 PageViewController 的功能,就想着有了现成的了,就没有自己再写了
massacreformash
2021-02-20 10:50:05 +08:00
@Xcution 我有点儿忘了在 iOS 的哪个版本里面 PageViewController 有坑了,会在特定情况下丢 ViewController 的引用导致崩溃,而且一直没修复。不知道现在修了没有。
我个人还是建议弄个自定义的
CommandZi
2021-02-20 11:16:46 +08:00
不太明白你说的效果,按理说 Autolayout 已经能实现自适应
Building
2021-02-20 14:24:06 +08:00
一般来说官方提供的控件,就是这么死板的。
ai277014717
2021-02-20 14:44:17 +08:00
看了下文档。PageViewController delegate 中没有调节 height 的函数。可以通过动态的修改 PageViewController 中 view 的 height 或者相关约束来达到目的。
leon0918
2021-02-20 14:45:18 +08:00
用代理自己算高度,赋值。是很麻烦的,先找找 github,不行自己封装一个。
ihwbunny
2021-02-20 15:12:30 +08:00
这种纯技术的讨论,给坛子增辉不少
JHExp
2021-02-20 16:15:36 +08:00
你的每一页内容都是 uiscrollview 的子类的话 固定高度也能滑啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/754497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX