0

我正在尝试制作一个应用程序,其中有一个滚动视图,其中框架和内容大小从情节提要中设置。我已经插入了一个标签,并且 scrollview 和 uilabel 都创建了 iboutlet。每次滚动分页时,我都想更改 uilabel 的文本。内容作为字符串保存在 nsmutable 数组中。只有一个 uilabel,我想在滚动视图的每一页中将它与数组中的内容一起重用。请帮忙..

4

1 回答 1

0

我认为您需要使用其中一种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是浮点变量,它保存滚动视图的当前可见帧的 x

在 .m 文件中将所有 @synthesize 下面的两个 ivars 声明为

NSMutableArray *arr;&float lastContentOffset;

然后当你填充你的滚动视图时,只需将它的框架的 origin.x 分配给lastContentOffset,然后使用arr来更改标签的文本

于 2012-06-01T08:31:01.083 回答