我想在代碼中佈局一些視圖。在運行時,我需要檢查我們有多少交易,然後適當地佈置代碼。我有一個UILabel和一個UIImageView。以編程方式Autolayout和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的財產translatesAutoresizingMaskIntoConstraints)
此錯誤是由以下約束造成的:
[查看addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@「H:| [numberOfDealsLabel] [dealsImage] |」 options:nil metrics:nil views:views]];
我不明白爲什麼這會導致問題。我的第一個想法是因爲UILabel太大了,加上圖像的大小造成了問題。不過,我將文本大小更改爲非常小的數字,而且我仍然遇到同樣的問題。
任何有關可能導致此問題的建議都會很好。
這是確切的問題。我已經將它設置爲UILabel,但不是imageView。謝謝。 – pls