Why is UIScrollView leaving space on top and does not scroll to the bottom

后端 未结 13 2638
眼角桃花
眼角桃花 2020-12-01 09:15

I am new to objective-C programming.

I am using UIScrollView with some labels, image and text view on it.

I have turned off Autolayout and already tried wit

相关标签:
13条回答
  • 2020-12-01 09:40

    I did below, my problem solved

    changing UIScrollView Content Insets property in from Automatic to Never and Adding below code in viewDidLoad()

    scroller.contentInset = UIEdgeInsetsZero;
    scroller.scrollIndicatorInsets = UIEdgeInsetsZero;
    scroller.contentOffset = CGPointMake(0.0, 0.0);`
    

    0 讨论(0)
  • 2020-12-01 09:41

    In your view .m file, use this code to fix this problem

    -(void)layoutSubviews{
        // To fix iOS8 bug of scrollView autolayout
        if([[[[[UIDevice currentDevice]systemVersion] componentsSeparatedByString:@"."]objectAtIndex:0] integerValue] == 8){
            [self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)];
        }
    }
    
    0 讨论(0)
  • 2020-12-01 09:42

    1... Why is UIScrollView leaving space on top

    With Storyboard- Goto view controller > Attribute Inspector > Uncheck Adjust Scroll View Insets property

    With Code- For extra space set viewController property automaticallyAdjustsScrollViewInsets to NO, by default it is YES.

    self.automaticallyAdjustsScrollViewInsets = false; 
    scroller.contentInset = UIEdgeInsetsZero;
    scroller.scrollIndicatorInsets = UIEdgeInsetsZero;
    scroller.contentOffset = CGPointMake(0.0, 0.0);
    

    2... does not scroll to the bottom

    To make it scroll try with large number in contentSize like CGSizeMake(320, 1687). If it works that means you are not setting the contentSize large enough to have all its content.

    0 讨论(0)
  • 2020-12-01 09:43

    Actually, the margin has nothing to do with ScrollViewInsets or contentOffset. It's just a conflict between SuperView.Top and SafeArea.Top pinning, happens when you pin the UIScrollView to top, bottom, left and right.

    This is the right way to cover the top margin.

    1) Pin all the four sides.

    2) Select the top constraint > Change Second Item to Superview.Top

    3) Then the last step is to change the Constant to 0 (Zero).

    You might want to check this too: https://github.com/29satnam/MoveTextFieldWhenKeyboardAppearsSwift

    0 讨论(0)
  • 2020-12-01 09:46

    iOS 11 && 12

    if #available(iOS 11.0, *) {
        scrollView.contentInsetAdjustmentBehavior = .never
    } else {
        automaticallyAdjustsScrollViewInsets = false
    }
    
    0 讨论(0)
  • 2020-12-01 09:49

    This works for me,

    _scrollView.scrollIndicatorInsets = UIEdgeInsetsZero;
    _scrollView.contentOffset = CGPointMake(0.0, 0.0);
    [_scrollView setContentSize:CGSizeMake(self.view.frame.size.width, self.view.frame.size.height)];
    
    0 讨论(0)
提交回复
热议问题