cojoj
cojoj

Reputation: 6475

UIScrollView zooming only to the size of UIImageView

I have UIScrollView in which UIImageView is held like on the screenshot:

View hierarchy

My problem appears when I zoom and instead of being able to scroll only in the area of my image (subview of scroll view) I'm able to scroll around the original size so I get a lot of white space around my image which isn't what I want. You can see what happens on the screenshot below:

Effect

I wonder what should I update to keep my scrolling area only the size of the image?

Upvotes: 1

Views: 735

Answers (2)

cojoj
cojoj

Reputation: 6475

After some research, some trials and errors I've finally achieved what I was planning to do.

First of all, I wanted to use only autolayout with IB which sure can be done but with some effort. After some digging I've found this technical note which by "Pure Auto Layout Approach" understands adding contraints in code but I was aiming at only IB which led me to this simple but beautiful solution called ios-imagescroll. After investigating this code with joy that I've finally found solution I came with some error but only on iOS 8 devices... iOS 7 worked like charm out of the box.

I assume that due to big changes in iOS 8 autolayout is more strict and you must be 100% sure what you want to accomplish. It turned out that this slight change MATTERS on iOS 8:

enter image description here enter image description here

Of course, this bug, fix (call it whatever you like) was fixed by experimenting with everything but I guess that UIScrollView's content view (in that case UIImageView) must be the first item in constraint.

Upvotes: 1

ares777
ares777

Reputation: 3628

    [yourScrollView setContentSize:CGSizeMake(yourScrollView.size.width, yourImage.frame.origin.y + yourImage.frame.size.height+35 )]; //let's say just 35 ...

yourImage may have x,y origins like (0,0) [I see a lot of space above it, so I assume you have set other values for x,y]

Upvotes: 0

Related Questions