я ищу объяснение поведения ограничений, в основном я программно создаю ограничения следующим образом:
leadingConstraint = NSLayoutConstraint(item: yellowBlock, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0)
trailingConstraint = NSLayoutConstraint(item: yellowBlock, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0)
(плюс ограничение сверху, ширины и высоты, все они установлены равными константе, но не очень важны). Затем я либо удаляю трейлинг и добавляю ведущий, либо наоборот и вызываю макет анимации UIViewIfNeeded().
Теперь, что происходит, блок идеально скользит слева направо (то есть конечная позиция выравнивается либо по левому, либо по правому краю экрана).
Теперь я хочу добавить поля по краям экрана, поэтому я установил начальное и конечное ограничение константы на 10 pp. Что происходит во время анимации, так это то, что блок идеально выровнен по левому краю (10 pp), но как только он скользит к правому краю на самом деле он выходит за пределы экрана (разведка на 10 стр.). Почему он исчезает с экрана? Если я установлю начальное ограничение на 10, а замыкающее на (минус) -10, тогда все будет идеально выровнено с полями 10 pp с обеих сторон. Для меня это не имеет смысла :(
Я уверен, что других ограничений нет, даже пытался сбросить все ограничения следующим образом:
yellowBlock.removeFromSuperview()
yellowBlock.removeConstraints(yellowBlock.constraints())
self.view.addSubview(yellowBlock)
yellowBlock.setTranslatesAutoresizingMaskIntoConstraints(false)
благодарю вас,