我需要以编程方式向<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
添加一些约束。
我需要让它水平居中于superview,垂直居中于superview,纵横比为superview,纵横比为self。
有人可以帮我吗?
谢谢。
答案 0 :(得分:27)
我会为你滚动球,这样你就可以看到一般的想法,否则请使用Larme提供的文档。
在superview中添加约束(可能是你的视图控制器)。
NSLayoutConstraint *centreHorizontallyConstraint = [NSLayoutConstraint
constraintWithItem:self.uiButton
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0];
[self.view addConstraint:centreHorizontallyConstraint];
因为你可以看到我们说UIButton的中心x属性也是视图控制器视图的中心x属性,没有额外的偏移(乘数设置为1.0和常数0)。
确保将其添加到视图控制器的视图中而不是按钮,因为此时按钮尚未布局,因此您无法为其添加约束! (如果我在这里错了,请有人纠正我)。我在viewDidLoad方法中添加了约束。
答案 1 :(得分:20)
我发现本教程最佳。
http://www.tutorialspoint.com/ios/ios_auto_layouts.htm
我的要求是设置:
使用下面的代码添加NSLayoutConstraint
我能够实现它
self.btnCoin.translatesAutoresizingMaskIntoConstraints = NO;
/* Leading space to superview */
NSLayoutConstraint *leftButtonXConstraint = [NSLayoutConstraint
constraintWithItem:self.btnCoin attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual toItem:self attribute:
NSLayoutAttributeLeft multiplier:1.0 constant:30];
/* Top space to superview Y*/
NSLayoutConstraint *leftButtonYConstraint = [NSLayoutConstraint
constraintWithItem:self.btnCoin attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual toItem:self attribute:
NSLayoutAttributeTop multiplier:1.0f constant:258];
/* Fixed width */
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:self.btnCoin
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:35];
/* Fixed Height */
NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:self.btnCoin
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:12];
/* 4. Add the constraints to button's superview*/
[self addConstraints:@[leftButtonXConstraint, leftButtonYConstraint, widthConstraint, heightConstraint]];
在上面的代码中,我设置左按钮constraints
。这是输出:
答案 2 :(得分:9)
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
imageView.translatesAutoresizingMaskIntoConstraints = false;
[self.view addSubview:imageView];
[imageView.widthAnchor constraintEqualToConstant:imageSize.width].active = YES;
[imageView.heightAnchor constraintEqualToConstant:imageSize.height].active = YES;
[imageView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES;
[imageView.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:25].active = YES;
快捷键4
var imageView = UIImageView(frame: CGRect.zero)
imageView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(imageView)
imageView.widthAnchor.constraint(equalToConstant: imageSize.width).isActive = true
imageView.heightAnchor.constraint(equalToConstant: imageSize.height).isActive = true
imageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
imageView.topAnchor.constraint(equalTo: view.topAnchor, constant: 25).isActive = true
注意:添加视图以查看层次结构后,请务必添加约束。