bhavya kothari
bhavya kothari

Reputation: 7474

why UIScrollView is leaving space from top in ios 6 and ios 7

enter image description here

enter image description here

I have turned off Autolayout and viewcontroller is embedded in navigation controller. I am using Xcode 5, Storyboard.

I don't understand why is it leaving space from top. Actually in storyboard i have put my label exactly below navigation bar. But when i run it on simulator then it leaves space from top.

One of the hacky way to resolve this

-(void)viewWillLayoutSubviews
{
   self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);

   self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}

But am i missing something very simple approach.

Upvotes: 70

Views: 37981

Answers (7)

Andoni Da Silva
Andoni Da Silva

Reputation: 1321

In your StoryBoard, select ContentInsets to never:

enter image description here

Upvotes: 0

Svitlana
Svitlana

Reputation: 3006

Inspector: Select scrollView and set up Content Insets - never

enter image description here

Upvotes: 11

chengsam
chengsam

Reputation: 7405

Update for iOS 11

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
} else {
    automaticallyAdjustsScrollViewInsets = false
}

Upvotes: 40

webjunkie
webjunkie

Reputation: 1184

For me in xcode 7 and Swift 2.x I was populating a UIScrollView with a for loop and had to set the contentInset to zero.

for image in images {
  self.scrollView.contentInset = UIEdgeInsetsZero
}

Upvotes: 4

Ravi Kumar
Ravi Kumar

Reputation: 1366

Go to main storyboard. Select view controller, see property "Adjust Scroll view Insects" in attribute inspector. if you do not want top spacing.then uncheck "Under Top Bars". if you don not want bottom spacing.then uncheck "Under Bottom Bars". this kind of problem come when we use scroll view related controllers.

This is a feature for navigation and tab bar to adjust content in scroll view like controls.

Upvotes: 8

Raheel Sadiq
Raheel Sadiq

Reputation: 9867

In Xcode 5, in storyboard select your controller > in Attribute Inspector disable Adjust Scroll View Insets Also check if you have set any contentInset

Edit : I attached a pic

enter image description here

Upvotes: 159

Anooj VM
Anooj VM

Reputation: 2633

The fix is to implement the following line of code after in the viewDidLoad;

self.automaticallyAdjustsScrollViewInsets = NO;

Upvotes: 85

Related Questions