我使用的是 xcode 5, Storyboard和自动布局已打开。我的一个 ViewController 的布局有一个带有图像背景的 UIButton。 View Controller 还有 3 个锚定在 View 底部的按钮和上面的一些标签。我将我的 Storyboard布置在 4 英寸视网膜显示器(即:iphone 5+)上,而我遇到的问题是在模拟 3.5 英寸显示器时(即:iphone 4、4s 等)
我已将锚定按钮的高度固定在底部以保持不变。我想要的是当应用程序在 3.5 英寸显示屏 iphone 上运行时,带有图像的 UIButton 将调整为更小(保持所有其他标签和按钮的大小和间距相同)。因此,该 UIButton 的纵横比将保持不变,它只会变小。
我无法在自动布局教程或其他在线教程中找到有关如何设置约束来执行此操作的任何内容(高度/宽度保持成比例)。
我认为您真正想要的如下: 1.Label顶部距离superView 100,底部距离superView 68 2.在 4"显示器中,其尺寸为 200x400,比例为 0.5 3.3.5寸显示器,尺寸为312x624,比例为0.5
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
// create search bar
CGRect frame = CGRectMake(60, 100, 200, 400);
_label = [[UILabel alloc] initWithFrame:frame];
_label.backgroundColor = [UIColor blueColor];
[self.view addSubview:_label];
// layout search bar
_label.translatesAutoresizingMaskIntoConstraints = NO;
// height
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:_label
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationLessThanOrEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:0
constant:400];
// width
[_label addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:_label
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:_label
attribute:NSLayoutAttributeHeight
multiplier:0.5
constant:0];
[_label addConstraint:constraint];
// vertical
NSDictionary *views = NSDictionaryOfVariableBindings(_label, self.view);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat"V:|-100-[_label]-68-|"
options:0
metrics:nil
views:views];
[self.view addConstraints:constraints];
// horizontal
constraint = [NSLayoutConstraint constraintWithItem:_label
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0];
[self.view addConstraint:constraint];
}
关于ios7自动布局按钮调整大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804062/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |