动态设置自动布局以在 iOS 中滚动视图

Posted

技术标签:

【中文标题】动态设置自动布局以在 iOS 中滚动视图【英文标题】:Set auto layout dynamically to scroll view in iOS 【发布时间】:2014-10-17 05:25:53 【问题描述】:

我正在动态创建滚动视图,现在我想为其设置自动布局 我实现了以下代码来设置自动布局,但它根本不起作用。

   - (void)viewDidLoad
   
   [super viewDidLoad];
        self.navigationItem.title=@"Insta SMS Collection";
        scrollView = [[UIScrollView alloc]initWithFrame:self.view.frame];


    [self.view addSubview:scrollView];
    scrollView.translatesAutoresizingMaskIntoConstraints = NO;
    NSDictionary *views = @@"scrollView":scrollView;
    [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:  
    [scrollView]"
    options:kNilOptions
    metrics:nil
    views:views;
    [self.view addSubview:scrollView];
    

【问题讨论】:

为什么要添加两次滚动视图?并且使用自动布局时不需要设置框架。 Auto layout UIScrollView with subviews with dynamic heights的可能重复 【参考方案1】:

添加水平和垂直自动布局。

[self.view addSubview:scrollView];
NSDictionary *dictScrollConst = NSDictionaryOfVariableBindings(scrlView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrlView]|" options:0 metrics:nil views:dictScrollConst]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrlView]|" options:0 metrics:nil views:dictScrollConst]];

也许这会对你有所帮助。

【讨论】:

以上是关于动态设置自动布局以在 iOS 中滚动视图的主要内容,如果未能解决你的问题,请参考以下文章

ios水平滚动视图和自动布局问题

iOS 从超级视图中删除对象会破坏自动布局并禁用滚动视图

具有动态视图数量和自动布局 iOS6 的 UIScrollView

iOS 中的动态布局

如何在 ios 中使用自动布局更改滚动视图内容大小

滚动视图不在自动布局中滚动子视图