相对于UIScrollView移动移动UIImageView

时间:2014-06-30 03:46:10

标签: ios cocoa-touch uiscrollview uiimageview

在我的self.view下我有一个UIScrollView名为self.scrollView,在self.scrollView下我有两个UIViews名为self.panedView和self.recordView。我的self.panedView的高度为568,Y的原点为0,我的self.recordView的高度为274,Y的原点为568.我的self.scrollView的内容大小高度等于842的高度( self.panedView的高度+ self.recordView的高度。我想在self.panedView上添加一个名为self.iconImageView的UIImageView,这样当我滚动时,imageView将向上移动到与滚动量相关的某个位置。 self.iconImageView的Y位置184只是self.view的子类。每当通过执行以下操作检测到向上滑动时,我最初使用UIView animationWithDuration移动self.iconImageView:

- (void)viewDidLoad
{
    [self.view insertSubview:self.iconImageView aboveSubview:self.panedView];
}

[UIView animateWithDuration:.25 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
    self.iconImageView.frame = CGRectOffset(self.iconImageView.frame, 0, -85.5);
} completion:nil];

如果我已切换到UIScrollView,我该如何复制?我认为这样的事情可能有用:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{

 if(self.iconImageView.center.y >= 184 && self.iconImageView.center.y <=451)
    {
    CGPoint newCenter = CGPointMake(self.view.bounds.size.width/2, self.iconImageView.center.y + (self.scrollView.contentOffset.y/self.scrollView.contentOffset.y));
    self.iconImageView.center = newCenter;
    }
}

1 个答案:

答案 0 :(得分:0)

实施UIScrollViewDelegate。每当滚动滚动视图(甚至以编程方式)时,您都会收到一个事件。