>  Q&A  >  본문

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일 전688

모든 응답(4)나는 대답할 것이다

  • 黄舟

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

    contentSize를 동적으로 설정할 수 있어야 하며 ScrollView를 중첩하는 것이 좋습니다. 왜 효과가 없었는지 말해 줄 수 있습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-21 11:19:26

    아이디어 하나 드리겠습니다. 여전히 하단에 수평 ScrollView가 있는 중첩 방법을 사용하고 PageControl을 엽니다. 각 페이지 내부에는 UIView가 있고 UIView 위에는 수직 스크롤 ScrollView가 있습니다.

    회신하다
    0
  • PHP中文网

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

    이 요구 사항은 기본적으로 사진 앨범의 요구 사항과 동일합니다. 이러한 요구 사항은 일반적으로 UIScrollView 중첩된 UIScrollView을 통해 달성됩니다. 구현할 때 framecontentSize의 구별에 주의하세요.

    회신하다
    0
  • 巴扎黑

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

    네스팅 아이디어는 가능합니다. 실패하면 코드만 확인하면 문제를 알 수 있습니다

    회신하다
    0
  • 취소회신하다