我正在尝试制作一个应用程序,其中有一个滚动视图,其框架和内容大小是从故事板设置的。我已经插入了一个标签,scrollview 和 uilabel 都创建了 iboutlet。 我想每次滚动分页时更改 uilabel 的文本。内容作为字符串保存在 nsmutable 数组中。只有单个 uilabel,我想在滚动视图的每一页中将其与数组中的内容重用。请帮忙..
我认为你需要使用
UIScrollViewDelegate
的方法之一,就像scrollViewDidEndDecelerating:
一样,你可以更改标签的文本以及标签的框架以将其显示在滚动视图的可见矩形中
- (void)scrollViewDidEndDecelerating:(UIScrollView *)ascrollView
{
if(lastContentOffset < ascrollView.contentOffset.x)
{
if(index-2 >= 0)
{
[ascrollView addSubview:[thumbs objectAtIndex:index-2]];
index-=1;
//change label text using the index and also it's frame's origin.x
NSLog(@"Direction Right Index %d",index);
}
}
else if(lastContentOffset > ascrollView.contentOffset.x)
{
if(index+2 < [thumbs count])
{
[ascrollView addSubview:[thumbs objectAtIndex:index+2]];
index+=1;
//change label text using the index and also it's frame's origin.x
NSLog(@"Direction Left Index %d",index);
}
}
NSLog(@"ScrollViewDidScroll is called");
lastContentOffset = ascrollView.contentOffset.x;
}
这里
lastContentOffset
是 float 变量,它保存滚动视图的当前可见帧的 x
在.m文件中将所有@synthesize下面的两个ivars声明为
NSMutableArray *arr;
& float lastContentOffset;
然后,当您填充滚动视图时,只需将其框架的 origin.x 分配给
lastContentOffset
,然后使用 arr
更改标签的文本