WEB开发网
开发学院手机开发iPhone 开发 iPhone 上实现页面循环滚动 阅读

iPhone 上实现页面循环滚动

 2010-03-10 16:10:00 来源:WEB开发网   
核心提示:网上没有找到直接能用的详细方法,简单实现了一下,iPhone 上实现页面循环滚动,在实现过程中发现 UIScrollView有以下部分特点:1)没有动画结束通知,非常头疼,见附件的ExScrollView.h .m设置自身为监听者,在具备一定的滚动状态判断条件下,如果有提供代理接口就好了,2)不会调用 touchBeg

网上没有找到直接能用的详细方法。简单实现了一下。

在实现过程中发现 UIScrollView有以下部分特点:

1)没有动画结束通知。非常头疼,如果有提供代理接口就好了。

2)不会调用 touchBegin touchMove touchEnd 等 UIView的接口,在 sdk3.0以后,这几个接口在 UIScrollView里面不起作用。

3)在滚动的状态下,如果对视图进行了绘制操作或者 addSubview 的操作,则滚动的动画会卡。

4)在 - (void)scrollViewDidScroll:(UIScrollView *)scrollView 代理接口里面,修改 contextOffset 之类的值不会起作用,这个接口最好就是记录一些状态,不要做 UIScrollview 相关的修改。

实现原理:将 UIScrollView 的 contextOffSet 的坐标,在滚动的边缘时进行改变,同时改变 UIScrollView 上 UIview 的center 属性,使 UIScrollView 上的元素能正确的改变。

实现过程:扩展 UIScrollView ,见附件的ExScrollView.h .m

设置自身为监听者,在具备一定的滚动状态判断条件下,调用 - (void)setScrollPosition 实现设置。

设置 ExScrollView 的测试接口

+ expand sourceview plaincopy to clipboardprint?

-(void)setUpViews:(ExScrollView*)sview

{

CGRect dddd = [sview frame];

CGSize rcSize = dddd.size;

int nViewCount = 3;

int perWidth = rcSize.width;

CGRect rc = CGRectMake(0, 0, perWidth, rcSize.height);

UIColor* color[6];

color[0] = [UIColor brownColor];

color[1] = [UIColor purpleColor];

color[2] = [UIColor orangeColor];

color[3] = [UIColor magentaColor];

color[4] = [UIColor yellowColor];

color[5] = [UIColor cyanColor];

int i=0;

for(;i< p>

{

UITextView* pView = [[UITextView alloc] initWithFrame:rc];

UIColor* pColor = color[i%5];

pView.backgroundColor = pColor;

pView.text = [NSString stringWithFormat:@"%view:%d",i+1];

pView.editable = NO;

1 2 3 4 5 6  下一页

Tags:iPhone 实现 页面

编辑录入:coldstar [复制链接] [打 印]
赞助商链接