首先,新建一个PageView.xib,在该xib的View里放上一个UILabel,并在IB里把它的tag设置为1:
然后,新建一个带xib文件的Controller,在这个Controller的xib里的View放上一个UIScrollView,frame和View一样大:
把刚才那个UIScrollView关联到Controller文件里,再开始写initView函数,初始化三个UIView,把他们添加到UIScrollView,然后设置UIScrollView宽度为三页,并让UIScrollView显示第二页:
下面是setPageFrame方法:
接下来实现UIScrollView的delegate:- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView。首先通过UIScrollView的contentOffset和frame的width属性计算得到UIScrollView滚动停止时候的显示页面,如果是第二页,则说明没有翻页,不作处理,如果是第一页或者第三页,则UIScrollView的三个subView的顺序依次向右或向左移动,并且继续让UIScrollView显示第二页:
依次向右或向左移动UIScrollView的subView方法:
本文所有代码下载链接:http://download.csdn.net/detail/i2c_rs485/4394375,我使用xcode4.3.2
我参考过的资料:
http://www.cocoachina.com/bbs/read.php?tid=7013&page=2 cocoachina的讨论
http://www.dreamingwish.com/dream-2011/uiscrollview-infinite-loop-scrolling.html 我都是从这篇文章学习到的正确方法,强烈建议你们也看一下,感谢Seven's!
DM8168 HDVPSS的VIP Parser模块(2)
此属性可以强制修改gcc的对齐方式
一般软件的2进制协议中,会定义一系列的规范,32位机一般会定义4字节对齐的协议,这样对于32位机来说速度是最快的。
最近发现gcc一个问题,在一个结构体包含unsignd long long (64位)类型时会导致结构体8字节对齐,且__attribute__ ((aligned(4)))
竟然无效
本例子用的x86 编译器版本
直接上例子程序
x86 32运行结果
arm contex A9 运行结果
结果说明在arm编译器成了8字节对齐 x86编译器还是4字节对齐
为了让该结构体4字节对齐,我们采用
强制对齐
输出结果还是
无奈使用单字节对齐
输出结果为
这样虽然解决了我们4字节对齐的问题,但是这样 我们得严格注意结构体对齐的问题。