UIScrollView -setContentInset 不起作用

Posted

技术标签:

【中文标题】UIScrollView -setContentInset 不起作用【英文标题】:UIScrollView -setContentInset not working 【发布时间】:2014-09-07 20:52:42 【问题描述】:

我有一个相当简单的滚动视图设置,我想摆脱 contentInset。

MyViewController.h

@interface MyViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end

MyViewController.m

@interface MyViewController

-(void)viewDidLoad

    [super viewDidLoad];

    [self.scrollView setContentInset:UIEdgeInsetsZero];
    ...

在我的故事板中,我的滚动视图从导航栏的底部开始。不幸的是,我在运行应用程序时得到以下结果。似乎 contentInset 仍然非常活跃。我已将 scrollView 背景设为绿色。

编辑:只提供故事板的图片和出口链接

【问题讨论】:

仍然在为此苦苦挣扎 - 可以碰撞吗? 尝试在- (void)viewWillLayoutSubviews中添加[self.scrollView setContentInset:UIEdgeInsetsZero]; 或 viewDidAppear:animated self.edgesForExtendedLayout = UIRectEdgeNone; 相关吗? 有效!谢谢@KudoCC 【参考方案1】:

好的,代码如下

[self.myScrollViewOutlet setContentInset:UIEdgeInsetsZero];

只有在放置在-(void)viewWillLayoutSubviews时才起作用。

它在-(void)viewDidLoad-(void)viewWillAppear:(BOOL)animated-(void)viewDidAppear:(BOOL)animated不起作用

希望对未来的人们有所帮助!

【讨论】:

【参考方案2】:

斯威夫特 3

在您的 UIViewController 中,其中包含您的 WebView,令人惊讶地命名为例如 webView。

override func viewWillLayoutSubviews() 
    super.viewWillLayoutSubviews();

    webView.scrollView.contentInset = UIEdgeInsets.zero;

【讨论】:

以上是关于UIScrollView -setContentInset 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView里面的UIScrollView:滚动

问题:UIScrollview 弹跳使父 UIScrollview 弹跳

UIScrollView 嵌入其他 UIScrollView

分页 UIScrollView 内的 UIScrollView

UIScrollView

UIscrollView