如果我们滚动滚动视图,则更改标签框的颜色

时间:2011-04-04 14:01:25

标签: iphone objective-c xcode

我有4个标签框,我有一个UIscrollview,我有4个页面。如果我们手动滚动滚动视图(通过拖动),标签框的颜色必须根据页码更改。 任何命中都可以做到这一点。

UIScrollView *scroll = [[UIScrollView alloc]initWithFrame:  CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)];  
scroll.pagingEnabled = YES;  

NSInteger numberOfViews = 4;

float j=0;
for (int i = 0; i < numberOfViews; i++) {
    CGFloat yOrigin = i * self.view.frame.size.width;
    printf("%f\n",yOrigin);
    UIView *scrollview = [[UIView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
    scrollview.backgroundColor = [UIColor cyanColor];
    [scroll addSubview:scrollview];
    [scrollview release];
    j=j+0.2;
}

1 个答案:

答案 0 :(得分:3)

在您的滚动视图上设置 UIScrollViewDelegate (最有可能是自我)。

scrollView.delegate=self

然后在您的委托类

上实现以下内容
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {...}

然后在该委托函数中查看 scrollview.contentOffset 属性。这将告诉您滚动视图左上角的当前位置(通过CGPoint)。使用此CGPoint来确定用户滚动了多少以及滚动适当数量时只需更改UIView / UILabel的颜色。