Проблема автосохранения в Xcode 8
=== РЕДАКТИРОВАТЬ ========
Эта проблема теперь решена в Xcode 8.1. Я проверил.
================
Я не знаю, как правильно настроить. Итак, я использую функцию авторазрешения в моих приложениях, и это хорошо для меня. Я могу выполнить все мои требования без каких-либо проблем.
Теперь в Xcode 8 я перенес свой старый быстрый проект в swift 3. Теперь возникает проблема.
![Storyboard SS]()
Посмотрите на изображении, я установил Autoresizing, и его работа отлично работала без проблем во всех устройствах до сих пор, и этот проект работает в AppStore, так что я не могу показать интерфейс или раскадровку.
Теперь мне нужно сделать некоторое обновление в проекте. Итак, теперь я работаю в Xcode 8. Но моя автоматизация не работает должным образом, так как все элементы управления входят в центр и пользовательский интерфейс испорчен.
![Выходное изображение]()
И проблема сохраняется и в устройстве. Я также проверил в симуляторе и устройстве. Но проблема есть и там. Любые предложения и помощь будут оценены. Спасибо заранее.
EDIT:
Вчера есть проблема только во время выполнения, но сегодня раскадровка также изменила представления, подобные этому изображению
![Изображение раскадровки]()
Это означает, что весь дизайн пользовательского интерфейса испорчен. Это странно.
Ответы
Ответ 1
Одиночная проблема. Как моя точка зрения, эта проблема возникает, когда мы используем автоматизацию и устанавливаем только внутренний метод autoresizingMask для любого контроллера вида. Как,
![введите описание изображения здесь]()
Если мы используем также метод авторезинирования границ в то время, не сталкиваемся с этой проблемой. Как,
![введите описание изображения здесь]()
Я не знаю, что это реальная ошибка xcode 8 или удалить эту функциональность в xcode 8.
Итак, наконец, мое предложение состоит в том, что нам нужно использовать автоматическую компоновку в xcode 8.
Ответ 2
Пожалуйста, попробуйте снять отметку с авторезистора из xib или раскадровки. И в viewDidLoad
установите [_scrollView setAutoresizesSubviews:YES];
Попробуйте, если это решит вашу проблему.
Изменить: В случае раскадровки снимите флажок Resize view from NIB
.
Ответ 3
Я не уверен в раскадрах, но я нашел временное решение для xib файлов. На панели "Утилиты" (правая панель) выберите вкладку "Инспектор файлов". В разделе "Интерфейс компоновщика интерфейса" выберите файл для открытия в "XCode 7.x". Он попросит вас подтвердить, что вы не хотите использовать функции XCode 8, сохраните файл и закройте его.
![введите описание изображения здесь]()
Ответ 4
i также сталкивается с той же проблемой для scrollView в Xcode8
У меня есть одно решение для работы с scrollView
сначала возьмите простой UIView и добавьте все компоненты, которые вы хотите добавить в scrollView, и дадите этому компоненту автозаказ
а также взять один scrollView и программно установить рамку представления, а также установить scrollView contentSize и добавить ваше представление в scrollView
как мудрый, в моем случае я добавляю этот код в viewDidLoad для быстрого проекта
// add view to scrollview
self.scrollObjForNextAppointment.contentSize = CGSize(width:self.scrollObjForNextAppointment.frame.size.width,height:410)
self.viewForScrollContent.frame = CGRect(x:0,y:0,width:self.scrollObjForNextAppointment.frame.size.width,height:410)
self.scrollObjForNextAppointment.addSubview(self.viewForScrollContent)
он работает для меня, спасибо!
Ответ 5
Xcode 8 beta 2 решил эту проблему!! Я уже проверил сейчас!
Ответ 6
Обновить проблема, похоже, исправлена в Xcode 8.1
Имея ту же проблему, и я обнаружил, что нарушителем здесь является элемент UIScrollView. Просто переместите все за пределы вашего скроллера, и вы увидите, что все работает отлично, как раньше.
Это означает, что одним из возможных способов решения проблемы является размещение вашего прокручиваемого контента в обычном UIView, а затем его программное программирование с помощью UIScrollView во время выполнения.
Ответ 7
Решено, сняв флажок "Автоматическое изменение размеров подсмотров" на ScrollView
![введите описание изображения здесь]()
Ответ 8
Модератор любезно удалил мой ответ здесь как дубликат, поэтому см. мой ответ по адресу:
Авторизация в iOS 10 не работает
В ответ на макс, да, изменение размера вложенных объектов может быть болью. Поэтому я предложил добавить в представление прокрутки один "контентный вид" и переместить все существующие подпрограммы внутри этого представления. Autosize subviews внутри представления содержимого так же, как вы делали с scrollview, и автоматическое определение содержимого для прокрутки.
Это представление содержимого, которое вы затем изменяете в viewDidLayoutSubviews.
И снова "представление содержимого" внутри конструкции scrollview является в значительной степени стандартным способом получения прокрутки с автоматическим масштабированием с использованием автозапуска, поэтому его следует считать лучшей практикой.
Этот метод описан здесь...
https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/
Мой метод кажется немного запутанным, но я смог запланировать раскадровку примерно с дюжиной сцен и Vc примерно через 15 минут. Для восстановления всего, используя автоматическую компоновку, потребовалось бы намного, гораздо больше времени.
Ответ 9
Apple просто вышла с XCode 8.2, которая исправляет эту проблему для меня. Я использую XCode 7.3.1 для дизайна интерфейса параллельно 8.1, но теперь я могу использовать 8.2 без каких-либо проблем.
Раскадровка обновляется с шириной и высотой кадров, но для размещения новой функции "Просмотр как:". Хотя это, похоже, не влияет на работу на устройстве/симуляторе.
Любопытно, что исправление не отмечено в примечаниях XCode 8.2.
Оригинальный ответ здесь