TimOliver/TOCropViewController

How do you match foreground to background?

Closed this issue · 1 comments

What are you trying to achieve with this library exactly? Please describe.
I might get this wrong.

From what I can understand, matching foreground to background is to make 2 images move and scale together so that they look like one image.
But how did you match them?

According to the content of matchForegroundToBackground:
self.backgroundContainerView.superview is exactly scrollview right?
But I think the frame of backgroundContainerView does not change(what changes is the contentOffset)so I don't quiet understand.

Thanks in advance!
That'll be of great help.

Hi @devshaww! All the code for matching the two is here:

- (void)matchForegroundToBackground
{
if (self.disableForgroundMatching)
return;
//We can't simply match the frames since if the images are rotated, the frame property becomes unusable
self.foregroundImageView.frame = [self.backgroundContainerView.superview
convertRect:self.backgroundContainerView.frame
toView:self.foregroundContainerView];
}

Admittedly, if I was to rebuild this library today, I probably wouldn't do it like that again. It was good for performance in 2015, but it ended up being really messy to handle things like rotations with.