Xcode - Раскадровка показывает размер и положение, измененное при открытии

Я заметил кое-что очень раздражающее в Xcode: у меня есть несколько раскадровок, для которых определенные размеры и положение представлений систематически обновляются при их открытии. Это раздражает особенно при работе с командой.

Вот как я вырабатываю это поведение:

  • Я вытащил приложение из репозитория git
  • Откройте затронутую раскадровку без каких-либо изменений
  • Git Diff уже говорит мне различия, как
$ git diff
...
- <rect key="frame" x="576.99999828648401" y="11" width="170" height="20"/>
+ <rect key="frame" x="577" y="11" width="170" height="20"/>
...
- <rect key="frame" x="518.99999921768904" y="7" width="228" height="30"/>
+ <rect key="frame" x="519" y="7" width="227.99999841338541" height="30"/>

Это происходит с кем-то еще?

Вопрос в том:
Почему моя раскадровка модифицируется, когда я только ее открываю, и как это предотвратить?


Обратите внимание:

Я понял, что это, кажется, происходит только на <rect /> содержится в labelс & textFields

3 ответа

Есть ошибка с раскадровками, которую, кажется, никто не изучает.

Постарайтесь максимально разделить раскадровки, чтобы уменьшить вероятность конфликта слияния и облегчить его возможное разрешение. Это также может увеличиться, если вы используете Xcode на внешнем дисплее с другим разрешением.

Эту проблему можно только уменьшить, но никогда не решить.

Xcode сохраняет информацию о расположении раскадровки в файле XML (.storyboard). Таким образом, любые изменения в раскадровке будут отражены в этом XML. Особенно если вы работаете с товарищами по команде, эта информация может регулярно меняться. Вы можете попробовать это, перемещая некоторые элементы (ничего не меняя), и после этого запустите diff с вашим репозиторием git. Вы должны снова увидеть изменение в XML. Вы можете игнорировать файл раскадровки в вашем git checkout. Но это не имеет большого смысла, так как ваши товарищи по команде, возможно, добавили новые элементы в раскадровку.

Может быть, это также поможет: [ Xcode изменяет неизмененные раскадровки и файлы XIB

Если я правильно понимаю первый ответ, другие изменения могут также вызвать изменение в XML-файле раскадровки.

С уважением Томас

У меня та же проблема. Вы решили это? Как?

Это мое решение:

  1. В настоящее время я использую версию Xcode 6.1.1 (6A2008a)
  2. Я загружаю Xcode 6.3 beta 2 Build: 6D532l
  3. Открыть проект в Xcode 6.3 beta 2
  4. Xcode 6.3 beta 2 изменит раскадровку: добавьте несколько полей и измените некоторые значения
  5. Запустите проект, чтобы проверить внешний вид приложения
  6. Закрыть проект
  7. Открыть с версией Xcode 6.1.1 (6A2008a)
  8. Проверьте изменения (в моем случае Xcode Version 6.1.1 (6A2008a) не отклоняйте изменения Xcode 6.3 beta 2)
  9. Выполнить (проблема, кажется, решена)
Другие вопросы по тегам