我正在尝试创建一个应用程序,其中有一个滚动视图,其中包含从故事板设置的框架和内容大小。我已经插入了一个标签,scrollview和uilabel都创建了iboutlet。 我想在每次滚动分页时更改uilabel的文本。内容以字符串形式保存在nsmutable数组中。只有单个uilabel,我想在滚动视图的每一页中重复使用数组中的内容。请帮忙..
答案 0 :(得分:0)
我认为您需要使用UIScrollViewDelegate
之类的scrollViewDidEndDecelerating:
方法之一,您可以更改标签的文本以及标签的框架,以便在scrollview的可见矩形中显示它/ p>
- (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
是浮点变量,它保存当前可见帧的滚动视图的x
在所有@synthesize下面声明两个ivars为
NSMutableArray *arr;
&amp; float lastContentOffset;
然后当你填充你的scrollView时,只需将它的frame的origin.x分配给lastContentOffset
,然后使用arr
更改标签文本