在UIScrollView中更改UILabel文本

时间:2012-06-01 05:54:54

标签: ios5 uiscrollview uilabel paging

我正在尝试创建一个应用程序,其中有一个滚动视图,其中包含从故事板设置的框架和内容大小。我已经插入了一个标签,scrollview和uilabel都创建了iboutlet。 我想在每次滚动分页时更改uilabel的文本。内容以字符串形式保存在nsmutable数组中。只有单个uilabel,我想在滚动视图的每一页中重复使用数组中的内容。请帮忙..

1 个答案:

答案 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

.m文件中的

在所有@synthesize下面声明两个ivars为

NSMutableArray *arr;&amp; float lastContentOffset;

然后当你填充你的scrollView时,只需将它的frame的origin.x分配给lastContentOffset,然后使用arr更改标签文本