首頁  >  問答  >  主體

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 天前689

全部回覆(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
  • 取消回覆