gpt4 book ai didi

ios - 布局 : How to use property in visual format

转载 作者:行者123 更新时间:2023-11-29 02:57:50 24 4
gpt4 key购买 nike

我有两个类(class)。

父类有一个属性:

@interface ParentVC

@property (nonatomic, strong) UIImageView* logoImageView;
@end

所以,现在,我需要在子类中输出带有布局约束的 View 。

@interface ChildVC : ParentVC
@end

如何修正视觉格式的格式串?

@"V:|-(%i)-[self.logoImageView]" // wrong

我找到了解决方案:

UIView* selfLogoImageView = self.logoImageView;

@"V:|-(%i)-[selfLogoImageView]"

但是有没有没有新变量的方法呢?

最佳答案

由于您使用的是视觉格式语言,因此您也在使用[NSLayoutConstraintconstraintWithVisualFormat:options:metrics:views]。该方法需要一个用于 views: 参数的字典。你在使用 NSDictionaryOfVariableBindings 吗?如果是这样,您不必这样做。您可以传入任何旧字典,只要它将您的 View 映射到您在视觉格式字符串中使用的名称即可。顺便说一下,您还可以传递一个指标字典,而不是您使用 %i 格式说明符所做的事情。

NSDictionary *views = @{ @"logo" : self.logoImageView, // use any name you want here
@"label" : self.someLabelView };

// kSomeSpacerConstant is an int or float primitive constant.
// We are wrapping it in @() because this dictionary needs NSNumbers as values.
NSDictionary *metrics = @{ @"spacer" : @(kSomeSpacerConstant) };

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(spacer)-[logo]-[label]"
options:0
metrics:metrics
views:views]];

如果您不想创建一个新的 NSDictionary 只是为了保存您的指标或 View ,只需传入文字 @{ ... } 语法即可metrics:views: 参数。 (但为了更清晰的代码,或者如果您正在构建多个视觉格式字符串并且您想重用字典,我建议不要这样做。)

关于ios - 布局 : How to use property in visual format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com