Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式和UIImageView自动布局_Ios_Uiimageview_Nslayoutconstraint_Programmatically Created_Ios Autolayout - Fatal编程技术网

Ios 以编程方式和UIImageView自动布局

Ios 以编程方式和UIImageView自动布局,ios,uiimageview,nslayoutconstraint,programmatically-created,ios-autolayout,Ios,Uiimageview,Nslayoutconstraint,Programmatically Created,Ios Autolayout,我试图在代码中布局一些视图。在运行时,我需要检查我们有多少交易,然后适当地布局代码。我有一个UILabel和一个UIImageView 我按如下方式创建对象: UILabel *numberOfDealsLabel = [UILabel new]; [numberOfDealsLabel setFont:[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:50]]; numberOfDealsLabel.translatesAutor

我试图在代码中布局一些视图。在运行时,我需要检查我们有多少交易,然后适当地布局代码。我有一个UILabel和一个UIImageView

我按如下方式创建对象:

UILabel *numberOfDealsLabel = [UILabel new];
[numberOfDealsLabel setFont:[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:50]];
numberOfDealsLabel.translatesAutoresizingMaskIntoConstraints = NO;
numberOfDealsLabel.textColor = [UIColor whiteColor];
[numberOfDealsLabel setTextAlignment:NSTextAlignmentCenter];
numberOfDealsLabel.numberOfLines = 1;
numberOfDealsLabel.text = [NSString stringWithFormat:@"%d", 2];
[numberOfDealsLabel sizeToFit];
numberOfDealsLabel.preferredMaxLayoutWidth = view.frame.size.width;
[view addSubview:numberOfDealsLabel];

UIImageView *dealsImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"deal"]];
[view addSubview:dealsImage];
景色只是一个正方形。从这里开始,我尝试添加以下约束,以便两个视图都紧靠视图顶部并水平共享空间

[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[numberOfDealsLabel][dealsImage]|" options:nil metrics:nil views:views]];

[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[numberOfDealsLabel]|" options:nil metrics:nil views:views]];

[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[dealsImage]|" options:nil metrics:nil views:views]];
我得到以下错误:

下面列表中可能至少有一个约束是您不想要的。试着这样做:(1)看看每个约束,试着找出你不期望的约束;(2) 找到添加了不需要的约束的代码,然后修复它。(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性TranslatesAutoResizingMaskToConstraints的文档)

此错误是由以下约束引起的:

[查看添加约束:[NSLayoutConstraint CONSTRAINTS WITH VISUALFORMAT:@“H:|[numberOfDealsLabel][dealsImage]|选项:无度量:无视图:视图]

我不明白这为什么会引起问题。我的第一个想法是因为UILabel太大,加上图像的大小导致了一个问题。然而,我改变了文本大小到一个非常小的数字,我仍然有同样的问题


任何关于可能导致此问题的原因的建议都是非常好的。

从外观上看,您并不是在UIIamgeView上调用“TranslatesAutoResizezingMaskintoConstraints=NO”,这至少会有一点帮助,如果不只是解决整个问题的话

所以,如果我是你,我会做的第一件事是:

UIImageView *dealsImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"deal"]];
[dealsImage setTranslatesAutoresizingMaskIntoConstraints:FALSE]; //this is new code
[view addSubview:dealsImage];
来自苹果:

对于了解自动布局的视图,在大多数情况下 希望TranslatesAutoResizengMaskintoConstraints为否


从外观上看,您并不是在UIIamgeView上调用“TranslatesAutoResistingGMaskintoConstraints=NO”,这至少会有一点帮助,如果不只是解决整个问题的话

所以,如果我是你,我会做的第一件事是:

UIImageView *dealsImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"deal"]];
[dealsImage setTranslatesAutoresizingMaskIntoConstraints:FALSE]; //this is new code
[view addSubview:dealsImage];
来自苹果:

对于了解自动布局的视图,在大多数情况下 希望TranslatesAutoResizengMaskintoConstraints为否


从外观上看,您并不是在UIIamgeView上调用“TranslatesAutoResistingGMaskintoConstraints=NO”,这至少会有一点帮助,如果不只是解决整个问题的话

所以,如果我是你,我会做的第一件事是:

UIImageView *dealsImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"deal"]];
[dealsImage setTranslatesAutoresizingMaskIntoConstraints:FALSE]; //this is new code
[view addSubview:dealsImage];
来自苹果:

对于了解自动布局的视图,在大多数情况下 希望TranslatesAutoResizengMaskintoConstraints为否


从外观上看,您并不是在UIIamgeView上调用“TranslatesAutoResistingGMaskintoConstraints=NO”,这至少会有一点帮助,如果不只是解决整个问题的话

所以,如果我是你,我会做的第一件事是:

UIImageView *dealsImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"deal"]];
[dealsImage setTranslatesAutoresizingMaskIntoConstraints:FALSE]; //this is new code
[view addSubview:dealsImage];
来自苹果:

对于了解自动布局的视图,在大多数情况下 希望TranslatesAutoResizengMaskintoConstraints为否


这正是问题所在。我为UILabel设置了它,但没有为imageView设置它。谢谢,这正是问题所在。我为UILabel设置了它,但没有为imageView设置它。谢谢,这正是问题所在。我为UILabel设置了它,但没有为imageView设置它。谢谢,这正是问题所在。我为UILabel设置了它,但没有为imageView设置它。谢谢