添加约束滚动后不起作用

Posted

技术标签:

【中文标题】添加约束滚动后不起作用【英文标题】:After adding constrain scrolling not work 【发布时间】:2014-09-06 12:54:21 【问题描述】:

我正在尝试在具有中心约束的滚动视图中添加按钮, 约束工作但滚动不工作滚动卡住, 任何人都可以帮助我哪里错了,

-(void)viewDidLoad
scrllview = [[UIScrollView alloc] initWithFrame:
                 [[UIScreen mainScreen] applicationFrame]];
    scrllview.backgroundColor = [UIColor orangeColor];
    self.view=scrllview;
    [scrllview setContentSize:CGSizeMake(300, 1000)];


    submitButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [submitButton setTitle:@"connect" forState:UIControlStateNormal];
    [submitButton.titleLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14.0]];
    [submitButton addTarget:self
                     action:@selector(myMethod:)
           forControlEvents:UIControlEventTouchUpInside];
    submitButton.backgroundColor = [UIColor blackColor];
    submitButton.translatesAutoresizingMaskIntoConstraints = NO ;
    [scrllview addSubview:submitButton];

    NSLayoutConstraint *constraint = [NSLayoutConstraint
                                      constraintWithItem:submitButton
                                      attribute:NSLayoutAttributeCenterX
                                      relatedBy:NSLayoutRelationEqual
                                      toItem:scrllview
                                      attribute:NSLayoutAttributeCenterX
                                      multiplier:1.0f
                                      constant:0.0f];

    [scrllview addConstraint:constraint];

    constraint = [NSLayoutConstraint
                  constraintWithItem:submitButton
                  attribute:NSLayoutAttributeCenterY
                  relatedBy:NSLayoutRelationEqual
                  toItem:scrllview
                  attribute:NSLayoutAttributeCenterY
                  multiplier:1.0f
                  constant:0.0f];

    [scrllview addConstraint:constraint];

【问题讨论】:

【参考方案1】:

当你使用带有自动布局的滚动视图时,你不应该使用 contentsize。

您可以在滚动视图中创建一个视图,该视图应具有您所需的相对于滚动视图的高度和约束。您可以在该视图中添加按钮。

它会起作用的。我已经用xib实现了它。直接在滚动视图中添加控件时同样的问题。我在滚动视图中使用了视图并添加了所需的控件来查看。

Auto layout UIScrollView with subviews with dynamic heights

【讨论】:

感谢重播...你能给我推荐任何示例或链接吗,因为过去 5 小时我已经在研究这个但仍未实现。 我没有在网上找到任何示例或链接。但我敢肯定,它会像我说的那样工作。我在其中一个产品中实现了,所以我不能共享代码。你能发给我不起作用的示例代码吗?我会修复它并向您发送更新。 我在滚动视图中只使用了一个按钮,并给出了包含滚动视图的大小。请编辑并更正我上面的代码。 你能给出那个按钮所需的高度吗?还有self.view=scrllview;?它应该是 [self.view addSubview:scrllview]; 如您所愿,但主要目的是启用滚动且按钮必须居中。

以上是关于添加约束滚动后不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Swift编程约束下边距不起作用

为啥这些约束不起作用?

触摸屏诺基亚 C5 -J2ME 的命令操作按钮和滚动在更改系统时间后不起作用

世博会推送通知在构建后不起作用

当内容'通过 AJAX 动态创建时,分页后不起作用

CSS悬停在初始动画后不起作用