我有几个比它们高的宽度的tableview单元。因此,我采取的视差滚动,所以你可以看到更多的图像,你向上/向下滚动在桌面图像上使用自动布局的视差
经过一些code examples几乎让我有,但为我用自动版式,我由于实际图像位置和预期位置的差异,当您第一次开始滚动时,发现“跳跃”。我已经尝试在viewDidAppear和didLayoutSubviews上调用布局函数,尝试在第一次安装后将其踢入形状,但没有运气。
This answer建议使用AutoLayout的解决方案,它看起来非常成功,所以我调整了第一个代码,但它仍然跳转。如果我用这个问题的答案建议的代码,它会到处
CGRect rectInSuperview = [tableView convertRect:self.frame toView:view];
float distanceFromCentre = CGRectGetHeight(view.frame)/2 - CGRectGetMinY(rectInSuperview);
float difference = CGRectGetHeight(self.eventImage.frame) - CGRectGetHeight(self.frame);
float move = (distanceFromCentre/CGRectGetHeight(view.frame)) *difference;
CGRect imageRect = self.eventImage.frame;
imageRect.origin.y = -(difference/2)+move;
self.verticalCenter.constant = move;
现在发生了什么,是滚动的伟大工程,但要素约30像素ISH只要你开始第一滚动跳了下去。所以我需要它在没有这个初始跳跃的情况下工作?
初始屏幕负载:
由1px的(第一个和最后一个图像的通知跳)滚动后: