添加约束滚动后不起作用
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]; 如您所愿,但主要目的是启用滚动且按钮必须居中。以上是关于添加约束滚动后不起作用的主要内容,如果未能解决你的问题,请参考以下文章