首页  >  问答  >  正文

objective-c - UIScrollView如何支持每页不同高度?(左右划切换页面,在某页上下滑动查看内容)

需求:iPhone电子书应用, 每个页面都是一张图片,每页根据文章长度不同图片有长有短(图片宽度固定为屏幕宽度,高度不定)

左右划切换页面,某个页面长的话,在该页上下滑动改页面查看内容。目前卡在具体实现上面,试过动态设置contentsize,试过scrollview嵌套scrollview,可能能力有限,没有成功。

动态设置contentsize
用4张图片测试:
1. 设置了一个scrollview,contentsize为(4*屏幕宽, 屏幕高),对水平方向做swipe识别
2. 捕捉scrollview停止的事件,查看当前停留在第N个页面(第N张图片),然后把scrollview的contentsize设成了(屏幕宽,第N张图片高)
这里涉及到contentoffset的问题,所以直接跳到第一张图片的位置了,从这里开始做不下去了。。。。

scrollview嵌套scrollview
用4张图片测试:
1. 设置了一个父scrollview,contentsize为(4*屏幕宽,屏幕高),直接用缺省的pageenable机制 2. 分别把4张图片嵌到四个scrollview里面,contentsize为(屏幕宽,图片高),父scrollview依次加载各scrollview为 subview
结果,相当于父scrollview的contentview高度没有子的高度大,程序貌似只认父scrollview的contentsize了,在每页里也不能上下滑动。。。。

目前的两种思路是不是都做不下去?初学ios,希望各位给点思路,谢谢~

PHP中文网PHP中文网2762 天前687

全部回复(4)我来回复

  • 黄舟

    黄舟2017-04-21 11:19:26

    动态设置contentSize和嵌套ScrollView应该都是可以的,建议嵌套。 可以说说为什么没有成功。

    回复
    0
  • ringa_lee

    ringa_lee2017-04-21 11:19:26

    我提供一个思路。还是用嵌套的方式,底下一个横向的ScrollView,然后打开PageControl;每个Page里方一个UIView,UIView上方纵向滚动的ScrollView

    回复
    0
  • PHP中文网

    PHP中文网2017-04-21 11:19:26

    这个需求和相册的需求基本上是一样的,这样的需求一般通过 UIScrollView 嵌套 UIScrollView 实现。实现的时候注意区分 framecontentSize

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-21 11:19:26

    嵌套的思路是可以的,你做不成功只能上代码看看问题了

    回复
    0
  • 取消回复