Я пытаюсь разместить некоторые представления в коде. Во время выполнения мне нужно проверить, сколько сделок у нас есть, а затем правильно расположить код. У меня есть 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, что вы не понимаете, обратитесь к документации по translatesAutoresizingMaskIntoConstraints собственности UIView)
Эта ошибка была вызвана следующим ограничением:
[смотреть addConstraints: [Ограничения NSLayoutConstraintWithVisualFormat: @ "H: | [numberOfDealsLabel] [dealsImage] |" options: nil metrics: nil views: views]];
Я не понимаю, почему это вызывает проблему. Моя первая мысль заключалась в том, что UILabel был слишком большой, и размер этого плюс изображение вызывало проблему. Однако я изменил размер текста на очень небольшое число, и у меня все еще есть та же проблема.
Любые советы о том, что может вызвать эту проблему, были бы замечательными.
Это была точная проблема. Я установил его для UILabel, но не для ImageView. Благодарю. – pls