Только начал изучать Swift, следуя прекрасному руководству по UIGestureRecognizer на сайте Рэя Вендерлиха. У него есть два изображения, которые вы можете перемещать (панорамировать), масштабировать (сжимать) и вращать. Работает отлично.
Но затем я попытался расширить его, добавив распознаватель жестов панорамирования в основной вид, чтобы я мог панорамировать всю «сцену» одновременно. Подключил его к ViewController так же, как два изображения. Это работает, но каждый раз, когда вы перемещаетесь в главном окне, оно сбрасывает положение других объектов, т. е. они возвращаются туда, где они были в начале прогона, забывая, куда вы могли переместиться. их к.
Это проблема AutoLayout (как описано в теме UILabel, вызывающей другие объекты для сброса позиции на iOS). (Хотя я нахожу это странным, потому что ограничений нет вообще. Что угодно.)
Отключение AutoLayout действительно предотвращает сброс, ОДНАКО... В конечном счете, я хочу создать приложение с использованием AutoLayout по другим причинам, поэтому я хочу сделать это с включенным AutoLayout.
Итак, добавлен некоторый код в viewDidLoad() в соответствии с сброс кадров UIView при использовании автомакета, а именно в раскадровке, я с помощью элемента управления перетащил из объекта «Основной вид» в помощник редактора для ViewController.swift строку, в которой говорится
@IBOutlet var mainView: UIView!
а затем, на мой взгляд,DidLoad, я добавил
mainView.translatesAutoresizingMaskIntoConstraints = true
Но это не имеет никакого эффекта, т. е. поведение сброса все еще происходит. :-( Никаких предупреждений о "Невозможно одновременно удовлетворить ограничениям" не генерируется.
Любая помощь? Спасибо. Запуск XCode 7 бета 5.