iPhone 上实现页面循环滚动
2010-03-10 16:10:00 来源:WEB开发网}
}
//调整位置
- (void)setScrollPosition
{
if([self isPagingEnabled] == NO)
{
return;
}
if(self.dragging != NO && self.decelerating != NO)
{
return;
}
int x = self.contentOffset.x;
int totalWidth = self.contentSize.width;
int perWidth = self.frame.size.width;
int minStart = 4;
int maxStart = totalWidth - perWidth - 4 ;
if(!(x
{
return;
}
if(totalWidth <= perWidth*2)
{
return;//只有两个元素的情况
}
if(x < minStart || x >maxStart)
{
NSLog(@"self.contentOffset.x=%f",self.contentOffset.x);
// 进入第一步,调整 contextOff 的位置
int nx = 0;
if(x < minStart)
{
nx = x + perWidth ;
}
if(x >maxStart)
{
nx = x - perWidth;
}
CGRect rcVisable;
rcVisable.origin.x = nx;
rcVisable.origin.y = 0;
rcVisable.size = self.frame.size;
self.contentOffset = rcVisable.origin;
//第二步 整理里面元素的位置 scrollView下面的视图偏移 (有两个 scrollView 自带的视图,排除 )
//整理
NSArray* ary = [self subviews];
int arySize = [ary count];
NSMutableArray* aryOrderd = nil;//从 ary 里面的视图取出,按照当前 scrollview上从左到右再排序
if(arySize > 0 )
{
aryOrderd = [[NSMutableArray alloc] initWithCapacity:0];
}
if(aryOrderd != nil)
{
int i = 0;
//初开始化数组
for(i=0;i
更多精彩
赞助商链接