我有三个UIViews
(320 * 568)。我想在scrollView
上重复使用它们。就像我们使用UItable单元格一样。
AM UIscrollView
宽度为320X10。即,它可以显示10个视图。但我想只使用3个视图。这是我的代码,但是当我滚动太快时它不能正常工作。请帮助。
我在 - (void)scrollViewDidScroll:(UIScrollView *)发件人中添加了相同的代码 它正常工作。但它打印NSLog(“你好”);大约10-15次,当我只滚动一页。 。 。 。 。
(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSlog("hello");
int pageCurrently = scrollView.contentOffset.x / scrollView.frame.size.width;
if (scrollView.contentOffset.x < 320)
{
a=0;
b=320;
c=640;
}
else if (scrollView.contentOffset.x >= 320)
{
if(scrollView.contentOffset.x == 320)
{
a=0;
b=320;
c=640;
}
else if(toCheckScrollNumber == pageCurrently )
{
}
else if(pageCurrently > intPreviousPage)
{
largeVal=MAX(c, MAX(a, b));
smallVal=MIN(c, MIN(a, b));
if(smallVal==a)
{
a = largeVal + 320;
}
else if(smallVal==b)
{
b = largeVal + 320;
}
else if (smallVal==c)
{
c = largeVal + 320;
}
}
else if(pageCurrently < intPreviousPage)
{
largeVal=MAX(c, MAX(a, b));
smallVal=MIN(c, MIN(a, b));
if(largeVal==a)
{
a = smallVal - 320;
}
else if(largeVal==b)
{
b = smallVal - 320;
}
else if (largeVal==c)
{
c = smallVal - 320;
}
}
}
NSLog(@"a=%d , b=%d , c=%d ",a,b,c);
[_otlSubView1 setFrame:CGRectMake(a, 0, 320, 568)];
[_otlSubView2 setFrame:CGRectMake(b, 0, 320, 568)];
[_otlSubView3 setFrame:CGRectMake(c, 0, 320, 568)];
intPreviousPage=pageCurrently;
}
答案 0 :(得分:0)
您应该使用scrollViewDidScroll
函数进行视图重用,而不是didEndDecelerating
- 后者仅在滚动视图已经减慢时调用。
由于您的视图非常小(高10像素),您可能还需要提前添加一些视图(例如,不仅一个视图会变得可见,但可能已提前3个 - { {1}}也预先加载几行。