I'm developing a little app in Swift 2.0. I have a View with the following hierarchy:
Now, the elements placed in this view can't be displayed entirely in it, so I would like to use a ScrollView
in order to be able to scroll all the content.
How I can embed all the content of my View
to a new ScrollView
? Can I do this programmatically by code?
One way to do this is programmatically create an UIScrollView in your UIViewController . To control the scrollability you can set the ScrollView contentSize property.
contentOffset is the point at which the origin of the content view is offset from the origin of the scroll view. In other words, it is where the user has currently scrolled within the scroll view. This obviously changes as the user scrolls.
UPDATE: There's an easier way to do this which I didn't know when I posted this answer
1) Go to the viewcontroller on the storyboard and click on something in it and press Command + A
. This will select all the elements in the view.
2) Go to Editor -> Embed In -> Scroll View
. This will embed all the labels, views, etc into a scrollView.
3) Select the scrollview
that you just embedded. Press Control
and drag it to the respective class file of the viewcontroller and create an outlet scrollView
.
4) Add this to your viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Make sure the height for the contentSize is more than the size of your view.
ADDING SCROLLVIEW MANUALLY
1) Drag and drop a scrollview
from the Object Library onto your viewcontroller
in the storyboard and create an outlet to your program as 'scrollView'.
2) Click on your viewcontroller
and go to the size inspector and note down the width and height.
3) Click on your scrollview
and set the width
and height
the same as the viewcontroller
. and set the X
and Y
values to 0
4) Click on the scrollView
and drag it a little bit to the side
5) Press Command+A
to select all the elements including scrollView
. Press Command
and click on the scrollView
to deselect the ScrollView
6)You will have all the elements except the scrollView
selected now. Now click and drag them into the scrollView.
7) Now click on the scrollView
and set the X
and Y
values to 0 from the Size Inspector.
8) Add this to your viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Make sure the height for the contentSize is more than the size of your view.
That should create a scrollView for your view. Some of the elements might be in a slightly different position. You can easily fix them by moving them on your storyBoard.
It can be done even simpeler than ebby94's answer.
1) Go to the viewcontroller on the storyboard and click on something in it and press Command + A. This will select all the elements in the view.
2) Go to Editor -> Embed In -> Scroll View. This will embed all the labels, views, etc into a scrollView.
3) Set the constraints of the Scroll View to the View's edges.
And you're good to go! No need for an outlet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With