ios - Objective C 相当于 Swift addConstraints?

标签 ios objective-c ios-autolayout

我是使用代码进行自动布局的新手。

addConstaints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-16-[v0]-16-|",options:NSLayoutFormatOptions(), metrics:nil ,views:["v0":thumbnailImageView]))

addConstaints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-16-[v0]-16-|",options:NSLayoutFormatOptions(), metrics:nil ,views:["v0":thumbnailImageView]))

我正在尝试使用以下代码在 Objective C 中实现上述快速代码,但应用程序在加载时崩溃并出现以下错误

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析约束格式: 期待一个 View H: |-16-[v0]-16-| ^'

    [self addConstraints:[NSLayoutConstraint 
constraintsWithVisualFormat:@"H:|-16-[v0]-16-|" 
options:0 
metrics:nil 
views:NSDictionaryOfVariableBindings(thumbnailImageView)]];

    [self addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-16-[v0]-16-|" 
options:0 
metrics:nil 
views:NSDictionaryOfVariableBindings(thumbnailImageView)]];

.....

UIImageView * thumbnailImageView = [[UIImageView alloc] init];
        thumbnailImageView.backgroundColor = [UIColor greenColor];
        thumbnailImageView.translatesAutoresizingMaskIntoConstraints = false;

        [self addSubview:thumbnailImageView];


        thumbnailImageView.frame = CGRectMake(0, 0, 100, 100);

最佳答案

NSDictionaryOfVariableBindings 生成与您的 Objective-C 变量名称匹配的变量绑定(bind)。所以你需要把约束写成

[self addConstraints:[NSLayoutConstraint 
constraintsWithVisualFormat:@"H:|-16-[thumbnailImageView]-16-|" 
options:0 
metrics:nil 
views:NSDictionaryOfVariableBindings(thumbnailImageView)]];

或者你只是跳过 NSDictionaryOfVairableDBindings 并使用:

[self addConstraints:[NSLayoutConstraint 
constraintsWithVisualFormat:@"H:|-16-[v0]-16-|" 
options:0 
metrics:nil 
views:@{ @"v0" : thumbnailImageView } ];

这有点像 Swift 版本。 (目前手边没有编译器,所以第二部分可能会出现一些小的语法错误。会尽快检查)。

关于ios - Objective C 相当于 Swift addConstraints?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944554/

相关文章:

ios - UIPickerView 没有出现在最上面

objective-c - Objective C 中的桶排序实现

ios - 如何在 Swift 中创建 GET、POST 和 PUT 请求?

ios - Xamarin Forms iOS11 大标题文本额外空白

ios - 具有不透明度的 GPUImageLightenBlendFilter

ios - NSURLSession:如何增加 URL 请求的超时时间?

php - 如何使用objective-c将JSON数据发布到PHP数据库?

swift3 - UILabel 和 UITextView 未正确对齐

ios - 我只是无法让我的应用程序在不同的屏幕尺寸上自行调整大小。我究竟做错了什么?

ios - 缩放后如何计算图像尺寸?