Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹
08 сСнтября 2015
Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹
08 сСнтября 2015
АвтопозиционированиС Π§Π°ΡΡ‚ΡŒ 1: iOS 8

Π‘Ρ‹Π²Π°Π»ΠΎ Π»ΠΈ Ρƒ вас Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ красивым ΠΊΠ°ΠΊ Π² Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°ΠΊ ΠΈ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ устройства? Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся iPhone, iPad Π΄ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ вас Π΄ΠΎ Π³Ρ€Π°Π½ΠΈ бСзумия? Π‘ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΡ‚Ρ‡Π°ΡΠ½ΠΈΡŽ - Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ мСня для вас Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ новости!

НСслоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½ΠΎ всС слоТности Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ открываСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ устройствС ΠΈ вашим UI элСмСнтам приходится ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€.

Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Ссли ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ достаточно слоТными, Ρ‚ΠΎ Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этих Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это большС Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ iOS 6 принСс Π½Π°ΠΌ ΠΏΡ€Π΅ΠΊΡ€Π°ΡΠ½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ для iPhone ΠΈ iPad - Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Начиная с Xcode 5, Π² iOS 7 ΠΈ iOS 8, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стало Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Xcode 4 ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² сдались, Ρ‚ΠΎ Π½Π΅ ΠΎΡ‚Ρ‡Π°ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ - Π΄Π°ΠΉΡ‚Π΅ шанс Xcode 6 ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° сколько всС стало ΠΏΡ€ΠΎΡ‰Π΅!Β 

Помимо Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана простой, Π½ΠΎ ΠΎΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ практичСски Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’Π°ΠΌ большС Π½Π΅ придСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ storyboards для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, это Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя языки с написаниСм справа-Π½Π°Π»Π΅Π²ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ²Ρ€ΠΈΡ‚ ΠΈΠ»ΠΈ арабский.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΠ°ΡΠΈΡ‚Π΅ΡΡŒ Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒ мастСрами автопозиционирования!

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с исходниками ΠΈ распорками

Π‘Π΅Π· сомнСния Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с autosizing masks(маски с автоматичСской смСной Ρ€Π°Π·ΠΌΠ΅Ρ€Π°), Ρ‚Π°ΠΊ ΠΆΠ΅ извСстными ΠΊΠ°ΠΊ модСль "исходники ΠΈ распорки". Маска опрСдСляСт Ρ‡Ρ‚ΠΎ случится с Π²ΠΈΠ΄ΠΎΠΌ, Ссли Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ (ΠΈΠ»ΠΈ супСрвид) ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ свой Ρ€Π°Π·ΠΌΠ΅Ρ€. Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ фиксированныС отступы (распорки), ΠΈ Ρ‡Ρ‚ΠΎ случится с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ ΠΈ высотой (исходниками)?

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, с измСняСмой ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ, Π²ΠΈΠ΄ становится ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅, Ссли Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ становится ΡˆΠΈΡ€Π΅. И Ссли ΠΏΡ€Π°Π²Ρ‹ΠΉ отступ являСтся фиксированным, Ρ‚ΠΎ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ Π²ΠΈΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ ΠΊ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ родитСля Π½Π° это фиксированноС расстояниС.

АвтопозиционированиС Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с простыми интСрфСйсами, Π½ΠΎ ΠΎΠ½ΠΎ быстро ломаСтся, ΠΊΠΎΠ³Π΄Π° интСрфСйсы становятся Π±ΠΎΠ»Π΅Π΅ замысловатыми. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ отступы Π½Π΅ ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ интСрфСйс.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Xcode 6 ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Single View Application. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ "StrutsProblem".

НаТмитС Π½Π° Main.storyboard, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² Β«interface builderΒ». Π’Π°ΠΊΠΆΠ΅, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΠ°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² сториборд. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² File inspector, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ:

Π£Π±Π΅Ρ€ΠΈΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ с чСкбокса Use Autolayout. БСйчас storyboard ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ модСль struts-and-springs, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ исходных Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ отступов.

ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° Π½Π° ваш основной Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ выглядСли Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Для ясности Ρ€Π°ΡΠΊΡ€Π°ΡΡŒΡ‚Π΅ Π²ΠΈΠ΄Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎ 20 Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ† ΠΎΠΊΠ½Π°, ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ 20 Π΅Π΄ΠΈΠ½ΠΈΡ†. НиТний Π²ΠΈΠ΄ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 280 Π΅Π΄ΠΈΠ½ΠΈΡ†, Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ ΠΏΠΎ 130. ВсС Π²ΠΈΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ высоту ΠΏΠΎ 254 Π΅Π΄ΠΈΠ½ΠΈΡ†.

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° симуляторС iPhone 5s ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ заставит вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ симулятор, Ссли ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π² мСню Hardware\Rotate Left ΠΈ Rotate Right, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ⌘ ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π°ΠΆΠ°Ρ‚ΡŒ стрСлку Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ вращСния.

А Π²ΠΎΠΎΠ±Ρ‰Π΅ вмСсто нашСго Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π²Ρ‹ Π±Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Π²ΠΎΡ‚ этого:

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ маски для всСх Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ², Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ. ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ установки автоматичСского измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°, Π½Π°:

Π­Ρ‚ΠΎ заставит Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΏΡ€ΠΈΠ»ΠΈΠΏΠ½ΡƒΡ‚ΡŒ ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ, ΠΈ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈ (Π½ΠΎ Π½Π΅ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ). Π’Π°ΠΊΠΆΠ΅, это мСняСт ΠΎΠ±Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ), ΠΊΠΎΠ³Π΄Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ мСняСт свой Ρ€Π°Π·ΠΌΠ΅Ρ€.

Аналогично, мСняСм значСния для ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

И мСняСм ниТний вид:

Если Π²Ρ‹ запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Ρƒ вас всС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π‘Π»ΠΈΠ·ΠΊΠΎ, Π½ΠΎ Π½Π΅ совсСм Ρ‚ΠΎ. РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Если Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄ΠΎΠ² Π½Π΅ Π½Π° 100% ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅. Маски говорят Π²ΠΈΠ΄ΠΎΠΌ ΠΎ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ измСнился ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π½ΠΎ Π½Π° сколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΈΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ извСстно.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Π°Π²Ρ‚ΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ (смысл ΠΎΡ‚ autosizing), ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ настройки измСняСмой ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты (исходники). Но Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 20 Π΅Π΄ΠΈΠ½ΠΈΡ†.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ - ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с исходниками ΠΈ отступами, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄.

UIKit посылаСт нСсколько сообщСний Π² ваш view controller: Π΄ΠΎ, Π²ΠΎ врСмя ΠΈ послС вращСния вашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ эти сообщСния для внСсСния своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вашСго UI(user interface - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ viewWillLayoutSubviews для измСнСния Ρ€Π°ΠΌΠΎΠΊ любого ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ.

Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ смоТСтС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ outlet свойства для возмоТности ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π²ΠΈΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² Assistant Editor (ΠΊΠ½ΠΎΠΏΠΊΠ° с двумя ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΊΡ€ΡƒΠΆΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Xcode). ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ с Π·Π°ΠΆΠ°Ρ‚Ρ‹ΠΌ CTRL Π² ViewController.swift:

БвяТитС эти свойства соотвСтствСнно:

@property (weak, nonatomic) IBOutlet UIView *topLeftView;
@property (weak, nonatomic) IBOutlet UIView *topRightView;
@property (weak, nonatomic) IBOutlet UIView *bottomView;

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ViewController.swift:

- (void)viewWillLayoutSubviews
{
    if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
    {
        CGRect rect = self.topLeftView.frame;
        rect.size.width = 254;
        rect.size.height = 130;
        self.topLeftView.frame = rect;
 
        rect = self.topRightView.frame;
        rect.origin.x = 294;
        rect.size.width = 254;
        rect.size.height = 130;
        self.topRightView.frame = rect;
 
        rect = self.bottomView.frame;
        rect.origin.y = 170;
        rect.size.width = 528;
        rect.size.height = 130;
        self.bottomView.frame = rect;
    }
    else
    {
        CGRect rect = self.topLeftView.frame;
        rect.size.width = 130;
        rect.size.height = 254;
        self.topLeftView.frame = rect;
 
        rect = self.topRightView.frame;
        rect.origin.x = 170;
        rect.size.width = 130;
        rect.size.height = 254;
        self.topRightView.frame = rect;
 
        rect = self.bottomView.frame;
        rect.origin.y = 295;
        rect.size.width = 280;
        rect.size.height = 254;
        self.bottomView.frame = rect;
    }
}

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² происходит Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° view controller поворачиваСтся Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Выглядит Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ориСнтация view controller ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΠ»Π°ΡΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄ΠΎΠ² соотвСтствСнно с Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, основанными Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ экрана iPhone. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ измСнСния Ρ‚Π°ΠΊ ΠΆΠ΅ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

ΠŸΠΎΡ‚Π΅Ρ€ΠΏΠΈΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ запускайтС своСго прилоТСния. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ масок для всСх Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ², ΠΈΠ»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ автоматичСского измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, выставлСнными Π² viewWillLayoutSubviews:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ - выглядит чудСсно, ΠΏΡ€Π°Π²Π΄Π°?Β 

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, для Ρ‚Π°ΠΊΠΎΠ³ΠΎ простого отобраТСния интСрфСйса. А ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для отобраТСния слоТного интСрфСйса, особСнно, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ динамичСскиС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π²ΠΈΠ΄Π°, Π½Π΅ фиксированноС количСство ΠΏΠΎΠ΄Π²ΠΈΠ΄ΠΎΠ² ΠΈ Ρ‚.Π΄.)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, запуститС своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 4s дюймовом симуляторС. Упс, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ располоТСниС Π²ΠΈΠ΄ΠΎΠ² Π½Π΅Π²Π΅Ρ€Π½ΠΎ, ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ рассчитаны Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ viewWillLayoutSubviews, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ основан Π½Π° расчСтС экрана (320Ρ…568 вмСсто 320Ρ…480). Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько if Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. И ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ-Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ - Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ nib Ρ„Π°ΠΉΠ» Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚ nib-Ρ„Π°ΠΉΠ»Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Когда устройство поворачиваСтся, Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π²ΠΈΠ΄ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ nib-Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, просто Π·Π°ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ Π²ΠΈΠ΄. Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ придСтся Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΠΎΡ‚Ρ€ΡƒΠ΄ΠΈΡ‚ΡŒΡΡ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сториборды вмСсто nib-Ρ„Π°ΠΉΠ»ΠΎΠ².

АвтопозиционированиС - нашС спасСниС!

Π§Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ эффСкт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ автопозиционирования. Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ viewWillLayoutSubviΒ  ews ΠΈΠ· ViewController.swift, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлаСм всС это Π±Π΅Π· написания ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄Π°.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Main.storyboard Π² ΠΏΠ°Π½Π΅Π»ΠΈ инспСктора Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Π΅ΠΊΠ½ΠΈΡ‚Π΅ Use Autolayout для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ использования автопозициониарования, для вашСго Ρ„Π°ΠΉΠ»Π° сториборд:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. БСйчас ΠΎΠ½ΠΎ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π—Π°ΠΆΠΌΠΈΡ‚Π΅ ⌘, ΠΏΠΎΠΊΠ° Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ‚Π΅ Π½Π° Π΄Π²Π° Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π²ΠΈΠ΄Π°(Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΈ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ), Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ. Π˜Π΄ΠΈΡ‚Π΅ Π² Xcode Editor Π΄Π°Π»Π΅Π΅ Pin\Width Equally:

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Π΅ ΠΆΠ΅ Π΄Π²Π° Π²ΠΈΠ»Π° ΠΈ ΠΈΠ΄ΠΈΡ‚Π΅ Π² мСню Editor\Pin\Horizontal Spacing. Если Π²Π°ΠΌ каТСтся, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° Π²ΠΈΠ΄Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ дСйствия, Ρ‚ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ находятся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ отобраТСния.

ΠžΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ Β«Π΄Π²ΡƒΡ‚Π°Π²Ρ€Β», ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²ΠΈΠ΄Π°ΠΌΠΈ, являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя Π²ΠΈΠ΄Π°ΠΌΠΈ. Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° ограничСния: ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ - равная ΡˆΠΈΡ€ΠΈΠ½Π° ΠΎΠ±ΠΎΠΈΡ… Π²ΠΈΠ΄ΠΎΠ²(ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹Π΅ Π΄Π²ΡƒΡ‚Π°Π²Ρ€Ρ‹ с синими ΠΊΡ€ΡƒΠΆΠΊΠ°ΠΌΠΈ со Π·Π½Π°ΠΊΠΎΠΌ равСнства) ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ - Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ (constraints) ΡΠ²Π»ΡΡŽΡ‚ΡΡ основным инструмСнтом, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами интСрфСйса. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡΡ‚Ρ€Π°ΡˆΠ°ΡŽΡ‰Π΅, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ Ρ‚Π°ΠΊ слоТно, ΠΈ Π²Ρ‹ΡƒΡ‡ΠΈΠ² ΠΈΡ… ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΈ постоянно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Для Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Editor\Pin Π² мСню:

  • Top Space to Superview
  • Leading Space to Superview

Для Π²ΠΈΠ΄Π° справа:

  • Top Space to Superview
  • Trailing Space to Superview

Для Π½ΠΈΠΆΠ½Π΅Π³ΠΎ большого Π²ΠΈΠ΄Π°:

  • Leading Space to Superview
  • Trailing Space to Superview
  • Bottom Space to Superview

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС "Π΄Π²ΡƒΡ‚Π°Π²Ρ€Ρ‹" ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ вашС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ автопозиционирования нСдостаточно Π΄Π°Π½Π½Ρ‹Ρ… для просчСта Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΈ располоТСний элСмСнтов. РСшСниС Ρ‚Π°ΠΊΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ добавляСм ограничСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ станут Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌΠΈ.

Π£Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ⌘ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ всС Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Editor\Pin\Heights Equally.

Π”Π°Π»Π΅Π΅, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ⌘, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΈ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Editor\Pin\Vertical Spacing.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ваш интрСфСйс Π±ΠΈΠ»Π΄Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ВсС ваши Π’-Π±Π°Ρ€Ρ‹ стали Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌΠΈ. ΠΠ²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ достаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅ располоТСниС элСмСнтов. Π­Ρ‚ΠΎ выглядит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ, Π½ΠΎ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ограничСния Equal Heights, Equal Widths Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста.

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ вуаля, всС выглядит снова Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, симулятору Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ устройствС ΠΌΡ‹ испытываСм наш интСрфСйс!

Π—Π΄ΠΎΡ€ΠΎΠ²ΠΎ! Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ сдСлали? ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ кодирования с вашСй стороны, Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π²ΠΈΠ΄Π°ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ.

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ извСстны Π½Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠ°ΠΊ ограничСния:

  • Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²ΠΈΠ΄Ρ‹ всСгда ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹.
  • Π•ΡΡ‚ΡŒ 20 Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ отступ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.
  • ВсС Π²ΠΈΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ всСгда ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ высоту.
  • Π•ΡΡ‚ΡŒ отступ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π½Π° 20 Π΅Π΄ΠΈΠ½ΠΈΡ†.
  • Π•ΡΡ‚ΡŒ 20 Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ отступ всСх Π²ΠΈΠ΄ΠΎΠ² ΠΎΡ‚ ΠΊΡ€Π°Π΅Π² экрана(Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ, Π½ΠΈΠΆΠ½ΠΈΠΉ, Π»Π΅Π²Ρ‹ΠΉ, ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π²ΠΈΠ΄Ρƒ родитСля)

Π­Ρ‚ΠΎΠ³ΠΎ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ элСмСнты ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сСбя вСсти ΠΏΡ€ΠΈ смСнС ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ устройства Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° всС свои установлСнныС ограничСния Π² схСмС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. БСкция ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Constraints Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Если Π²Π΄Ρ€ΡƒΠ³ Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ схСму Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ стрСлочку Π²Π½ΠΈΠ·Ρƒ интСрфСйс Π±ΠΈΠ»Π΄Π΅Ρ€Π°.

Π’Π°ΠΊ Π²ΠΎΡ‚, Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² схСмС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ выдСляСтся это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² интСрфСйс Π±ΠΈΠ»Π΄Π΅Ρ€Π΅.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΠ½ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ свои Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаСт отступ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²ΠΈΠ΄Π°ΠΌΠΈ свСрху, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² Attribute Inspector. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ отступ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Constant.

Π’Ρ‹ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого поля Π½Π° 100 ΠΈ запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ снова. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ стало Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠΈΡ€Π΅:

АвтопозиционированиС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ инструмСнт, Ρ‡Π΅ΠΌ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ отступы. Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ограничСния Π² Β«Interface builderΒ» для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… шаблонов.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, основным инструмСнтом автопозиционирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ограничСния (constraints). ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ гСомСтричСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚:

"ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ ярлыка A соСдинСн с Π»Π΅Π²Ρ‹ΠΌ ΠΊΡ€Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ пустотой, ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½Π° 20 Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ."

АвтопозиционированиС Π±Π΅Ρ€Π΅Ρ‚ эти ограничСния ΠΈ выполняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ матСматичСскиС вычислСния идСальной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² всСх Π²Π°ΡˆΠΈΡ… Π²ΠΈΠ΄ΠΎΠ². Π’Π°ΠΌ большС Π½Π΅ приходится ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ всСх Π³Ρ€Π°Π½ΠΈΡ† ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. АвтопозиционированиС, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ значСниях ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π΄Π΅Π»Π°Π΅Ρ‚ это Π·Π° вас.

Π”ΠΎ автопозиционирования Π²Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²Π°ΡˆΠΈΡ… Π²ΠΈΠ΄ΠΎΠ²: ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΡ… размСщСния Π½Π° спСцифичСскиС мСста Π² Β«Interface builderΒ», ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π²ΠΈΠ΄Π° Π² initWithFrame, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свойства frame, bounds, center Π²ΠΈΠ΄Π°.

Для прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали, Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹:

Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ устанавливаСтС ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ маски для этих Π²ΠΈΠ΄ΠΎΠ²:

Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΊΠ°ΠΊ ΠΌΡ‹ описывали Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅. АвтопозиционированиС - это всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅:

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ значСния, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ограничСния ΠΈΠΌΠ΅ΡŽΡ‚ сущСствСнный вСс. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ пСрСтаскиваСтС ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ элСмСнт Ρ‚ΠΈΠΏΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ»ΠΈ ярлыка Π½Π° свой чистый холст(экран), Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π½ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Β«interface builderΒ» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ограничСния.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π²Ρ‹ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ прСимущСство Π² использовании ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ большС Π½Π΅ Π²Π΅ΡΠ΅Π»ΠΈΡ‚Π΅ΡΡŒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ваши Π²ΠΈΠ΄Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ВмСсто этого, Π²Ρ‹ описываСтС для автопозиционирования Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Ρ‹ располоТСны ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, ΠΈ ΠΎΠ½ выполняСт всю Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π° вас. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ называСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ†Π΅Π»ΠΈ (ΠΈΠ»ΠΈ designing by intent).

Когда Π²Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎ Ρ†Π΅Π»ΠΈ, Π²Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚Π΅ какая ваша Ρ†Π΅Π»ΡŒ, Π½ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ этой Ρ†Π΅Π»ΠΈ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ: "Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» ΠΊΠ½ΠΎΠΏΠΊΠΈ располоТСн ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ (20, 230)", Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅:

"Кнопка располагаСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ родитСля, ΠΈ ΠΎΠ½Π° располоТСна Π½Π° фиксированном расстоянии ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края родитСля."

Если ΠΌΡ‹ объясняСм Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΎ ΠΌΡ‹ Π΄Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ проСктирования ΠΏΠΎ Ρ†Π΅Π»ΠΈ(Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС эти инструкции):

  • "Π­Ρ‚ΠΈ Π΄Π²Π° тСкстовых поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°."
  • "Π­Ρ‚ΠΈ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ вмСстС."
  • "Π­Ρ‚ΠΈ Π΄Π²Π° ярлыка всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ располоТСны справа."

Π­Ρ‚ΠΎ всС Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ наглядным. Π’Ρ‹ просто ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ ограничСния, ΠΈ систСма автоматичСски всС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ для вас.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ интСрфСйс с ΠΏΠ°Ρ€ΠΎΠΉ Π²ΠΈΠ΄ΠΎΠ², Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ трудностСй для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ располоТСния элСмСнтов Π² ΠΎΠ±Π΅ΠΈΡ… ориСнтациях. Π‘ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ позиционирования Π²ΠΈΠ΄ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ограничСния, послС Ρ‡Π΅Π³ΠΎ вашС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠ±Π΅ΠΈΡ… ориСнтациях.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСимущСство использования ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ - это интСрнационализация. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, тСкст Π½Π° Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΌ языкС Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² Π²Π°ΡˆΠΈΡ… ярлыках ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ болью. И ΠΎΠΏΡΡ‚ΡŒ, Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ярлыка для размСщСния Π² Π½Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ тСкста, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго для отобраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ограничСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков для вашСго прилоТСния стало Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ лишь пСрСвСсти тСкст ΠΈ всС!

И ΡƒΠ³Π°Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ способ самый Π»ΡƒΡ‡ΡˆΠΈΠΉ для изучСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ!Β 

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

АвтопозиционированиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ смСнС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ устройства, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ вашСго интСрфСйса, Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано Π½Π΅ случайно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ΡˆΠ΅Π» iPhone 5, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π» Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ экрана, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ iPhone 6. И ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ, начиная с iOS 7, Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стало Π΄Π°ΠΆΠ΅ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ элСмСнтом. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ настройки тСкста, Π° благодаря Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, это Π»Π΅Π³ΠΊΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π² Π²Π°ΡˆΠΈΡ… прилоТСниях.

Π˜Π³Ρ€Π°Π΅ΠΌ с ограничСниями

Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ iPhone, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Single View Application. НазовитС этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ "Constraints". Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ создали Π² Xcode 5 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, автоматичСски считаСт, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Main.storyboard для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Β«interface builderΒ». ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Button Π½Π° ваш холст. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ пСрСтаскиваСтС ΠΊΠ½ΠΎΠΏΠΊΡƒ, врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³ΠΎΠ»ΡƒΠ±Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ. Они извСстны ΠΊΠ°ΠΊ guides (ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹):

ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ находятся ΠΏΠΎ краям экрана ΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅:

Если Π²Ρ‹ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² Β«interface builderΒ», Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Π· сомнСния Π²ΠΈΠ΄Π΅Π»ΠΈ эти ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹. Они ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов.

Π’ Xcode 4 ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ. Π’Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для выравнивания, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ говорят Π²Π°ΠΌ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ ограничСния. Если Π²Ρ‹ пСрСнСсСтС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» ΠΊ синим ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ, Ρ‚ΠΎ ваш сториборд Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π²Π΅ Π³ΠΎΠ»ΡƒΠ±Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ ΡΠΎΠΏΡ€ΠΈΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° Π΄Π²ΡƒΡ‚Π°Π²Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ Π²ΠΈΠ΄Π° Π±ΡƒΠΊΠ²Ρ‹ "Π’" Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ограничСниями. НС Π²Π°ΠΆΠ½ΠΎ Π³Π΄Π΅ Π²Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ свой элСмСнт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° экранС^ всСгда Π²Π°Π»ΠΈΠ΄Π½Ρ‹. Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ всС это выглядит ΠΊΠ°ΠΊ классная идСя, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π΄Π΅Π»Π°Π΅Ρ‚ использованиС автопозиционирования нСвСроятно слоТным ΠΈΠ· вашСго интСрфСйс Π±ΠΈΠ»Π΄Π΅Ρ€Π°.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, это помСняли Π² Xcode, начиная с 5 вСрсии, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° экран, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ появится:

И Ссли Π²Ρ‹ посмотритС Π½Π° схСму Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΈ Ρ‚Π°ΠΌ Π²Ρ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠ°ΠΏΠΎΠΊ Constraints. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ большС Π½Π΅ создаСтся.

Но Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ? Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ функционирования, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ достаточноС количСство ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΆΠ΅, это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π²ΠΈΠ΄ΠΎΠ², Π½ΠΎ Ρƒ вас Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. МоТно Π»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Xcode 4 ΠΈ Xcode 5, Π² 6 вСрсии вас большС Π½Π΅ Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ всСгда ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅ располоТСниС.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

Π­Ρ‚ΠΎ плохая идСя Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π½Π΅Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ располоТСниСм элСмСнтов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΡƒΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π²ΠΈΠ΄Ρ‹. Π’Π°ΠΊ ΠΆΠ΅ располоТСния Π²ΠΈΠ΄ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ нСпрСдсказуСмыми (нСдостаточно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ), ΠΈΠ»ΠΈ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ (слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ). Ой-ΠΎΠΉ!

Π’ Xcode 4 ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ это ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ ограничСния Π² Π½Π΅ΠΌ Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ автоматичСски. К соТалСнию, Π² Π½Π΅ΠΌ Ρ‡Π°ΡΡ‚Π΅Π½ΡŒΠΊΠΎ ΡƒΠ΄Π°Π»ΡΠ»ΠΈΡΡŒ ваши ограничСния ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ свои, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ ΠΈ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ автопозиционирования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

Начиная с Xcode 5 это нСудобство ΠΏΡ€ΠΎΠΏΠ°Π»ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Xcode позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния. ИспользованиС автопозиционирования стало Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ интСрСснСС ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ процСссом, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π½Π΅Π΅.

Если Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Xcode автоматичСски присваиваСт ограничСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, извСстныС ΠΊΠ°ΠΊ automatic constraints (автоматичСскиС ограничСния). Π­Ρ‚ΠΈ ограничСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ компиляции вашСго прилоТСния, Π²ΠΎ врСмя постройки, Π° Π½Π΅ Π²ΠΎ врСмя создания Π΄ΠΈΠ·Π°ΠΉΠ½Π°. АвтопозиционированиС Π² Xcode 5 стараСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ располоТСниС, ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ чСстно, Π½Π°ΠΌ это ΠΎΡ‡Π΅Π½ΡŒ нравится.

АвтоматичСскиС ограничСния Π΄Π°ΡŽΡ‚ вашим Π²ΠΈΠ΄Π°ΠΌ фиксированныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ваши Π²ΠΈΠ΄Ρ‹ элСмСнтов ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² сторибордС. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π’Ρ‹ просто Π½Π΅ добавляСтС Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ссли ограничСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ достаточны, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния, Ссли ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для Π²Π°ΡˆΠΈΡ… Π²ΠΈΠ΄ΠΎΠ².

Π—Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ с ограничСниями ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° располагаСтся ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ограничСния ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Editor\Pin Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠ° выглядСла Ρ‚Π°ΠΊ:

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ догадались, Ρ‚ΠΎ это ΠΎΠΏΡ†ΠΈΠΈ Leading Space to Superview ΠΈ Top Space to Superview.

ВсС ограничСния Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² схСмС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ нас всСго Π΄Π²Π° ограничСния: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ - ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ расстояния ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края родитСля Π΄ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ края ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ - ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ расстояния ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ края родитСля Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ края ΠΊΠ½ΠΎΠΏΠΊΠΈ. ВсС это ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ Ρ„Ρ€Π°Π·ΠΎΠΉ:

"Кнопка Π΄ΠΎΠ»ΠΆΠ½Π° всСгда Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° расстоянии 20 Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° родитСля."

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

На самом Π΄Π΅Π»Π΅ это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ограничСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ ограничСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Π²Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта ΠΊΠ½ΠΎΠΏΠΊΠ° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»Π°ΡΡŒ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, Ρ‚ΠΎ Π²Ρ‹ просто ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Xcode это сдСлаСт Π·Π° вас.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΈ пСрСмСститС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ»:

Π£Ρ…, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Ρ‚ΡƒΡ‚? Π’ вСрсии Xcode 4 Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ сломало Π±Ρ‹ старыС ограничСния ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΎ Π½ΠΎΠ²Ρ‹Π΅, Π½ΠΎ Π² Xcode 5 ΠΊΠ½ΠΎΠΏΠΊΠ° остаСтся ΠΏΡ€Π΅Π΄Π°Π½Π½ΠΎΠΉ старым ограничСниям. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ позиция ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ называСтся ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅ располоТСниС Π²ΠΈΠ΄Π°.

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Кнопка появится Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ экрана:

Когда Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ отобраТаСтся ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‚ΠΎ это ΠΏΠ»ΠΎΡ…ΠΎ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π±ΠΈΠ»Π΄Π΅Ρ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ боксы ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, ΠΎΠ΄ΠΈΠ½ с ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΠΎΠΉ Ρ€Π°ΠΌΠΎΡ‡ΠΊΠΎΠΉ, Π΄Ρ€ΡƒΠ³ΠΎΠΉ с Ρ†Π΅Π»ΡŒΠ½ΠΎΠΉ. Бокс с ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΠΎΠΉ Ρ€Π°ΠΌΠΎΡ‡ΠΊΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ расчСтноС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, вычислСнноС Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, сплошная Ρ€Π°ΠΌΠΎΡ‡ΠΊΠ° ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ располоТСнии элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ Π²Ρ‹ сами. По ΠΈΠ΄Π΅Π΅ эти Π΄Π²Π° бокса всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ нСсовпадСниС ΠΌΠΎΠΆΠ½ΠΎ двумя способами, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этим:

  • Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° отставлСна Π½Π° 254 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края? Π’ этом случаС Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° 234 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ бокс с "+234".
  • ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° отставлСна ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края родитСля Π½Π° 20 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ²? Для этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ края для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ создано Π½ΠΎΠ²ΠΎΠ΅.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ стало ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ. НичСго Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ, Ρ†Π²Π΅Ρ‚ просто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этого ограничСния нСдостаточно для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’Π°ΠΌ всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ оси X.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ станСт интСрСсно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ всС Ρ‚Π°ΠΊΠΈ Xcode Π½Π΅ добавляСт автоматичСски Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для оси X. Π’ Xcode Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ - Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ автоматичСски ограничСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ… случаях, Ссли Π²Ρ‹ Π½Π΅ выставили своих. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ сказали Xcode, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° этот Π²ΠΈΠ΄. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Xcode Π½Π΅ создаСт автоматичСских ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для этого Π²ΠΈΠ΄Π°.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² мСню Editor\Pin\Trailing Space to Superview. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ:

"Кнопка всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° расстоянии 20 Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΎΡ‚ сторон ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°."

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ экран Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ‚ΠΎ ΠΆΠ΅ расстояниС ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края:

Если Π²Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄) ΠΏΠΎ линиям ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΈ создаСтС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² "HIG", Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ посвящСнной интСрфСйсу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Apple iOS. Для отступов ΠΎΡ‚ ΠΊΡ€Π°Π΅Π² стандартный Ρ€Π°Π·ΠΌΠ΅Ρ€ составляСт 20 Π΅Π΄ΠΈΠ½ΠΈΡ†.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»Π΅Π²ΠΎ:

Π‘Π½ΠΎΠ²Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ с ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π²ΠΈΠ΄ Π±Ρ‹Π» Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΡ‹ ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎ Π½Π΅ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π²ΠΈΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ появился ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ бокс. Π•ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ способ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½ΠΈΡ… - ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅, Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простой способ.

Π’ мСню, Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ Editor, Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚ Resolve Auto Layout Issues. Π’Π°ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Update Constraints. Π’ ΠΌΠΎΠ΅ΠΌ случаС этого Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Β«interface builderΒ», Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ отступ справа Π½Π° 64 ΠΏΡƒΠ½ΠΊΡ‚Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ:

Π—Π΄ΠΎΡ€ΠΎΠ²ΠΎ, наши отступы ΠΈΠ»ΠΈ ограничСния снова стали Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌΠΈ ΠΈ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нашС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎ. Π’ схСмС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Horizontal Space Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π² скобках Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 84, вмСсто 20:

ΠœΡ‹ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ограничСниями ΠΈ самоС врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с "Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ" ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Button Π½Π° сСрСдину Π½ΠΈΠΆΠ½Π΅ΠΉ части вашСго холста Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас появились Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π³ΠΎΠ»ΡƒΠ±Ρ‹Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° всСгда ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ родитСля, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Editor\Align\Horizontal Center in Container, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΡƒΡŽ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ линию:

Π­Ρ‚Π° линия оранТСвая, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с осью X, Π½ΠΎ ΠΏΡ€ΠΎ Y Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ. ИдСм Π² Editor\Pin для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ экрана. Π’ ΠΈΡ‚ΠΎΠ³Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Если Π²Π΄Ρ€ΡƒΠ³ Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΈΠ΄Π΅ΠΌ Π² Editor\Pin\Bottom Space to Superview. Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ расстояниС ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎ Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ расстояниС приравниваСтся стандартному отступу).

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄. Π”Π°ΠΆΠ΅ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ° располагаСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρƒ:

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали: "Π­Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ всСгда Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ основания". ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½ΠΈ ΠΎΠ± Β«interface builderΒ», Π½ΠΈ ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π½Π΅ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь ΠΏΡ€ΠΎ Ρ‚ΠΎ, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эту ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Π‘ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΎΡ‚ вас большС Π½Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ располоТСния Π²ΠΈΠ΄Π° Π½Π° шаблонС, ΠΈΠ»ΠΈ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ВмСсто этого, Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вычисляСт эти ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ устанавливаСтС.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния Π² Size Inspector для ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаточно сильно Π²ΠΈΠ΄Π½Ρ‹:

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ элСмСнта, вписав ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния Π² X,Y, Width ΠΈ Height. ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ значСния Π² эти поля, Π½ΠΎ Ссли Π²Ρ‹ ΡƒΠΆΠ΅ установили ограничСния, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш Π²ΠΈΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ располоТСн Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’Π°ΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅ придСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ограничСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ соотвСтствовали Π½ΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ вашСго Π²ΠΈΠ΄Π°.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100. Наш холст ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

Π’ своС врСмя Xcode 4 Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ» Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ оси X Π½Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ отступ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹ заставляло ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Ρ€Π°Π²Π½ΠΎΠ΅ 100, ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… ориСнтациях. Но Xcode 5 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ вСрсии Π½Π°ΠΌ говорят: "НичСго ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ€Π°Π²Π½ΡƒΡŽ 100, просто ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ваши ограничСния Π½Π΅ говорят ΠΎΠ± этом."

Π’ случаС, Ссли Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 100, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ фиксированной ΡˆΠΈΡ€ΠΈΠ½Ρ‹. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Undo, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ограничСния снова стали синими. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² мСню Editor\Pin\Width. Π­Ρ‚ΠΎΡ‚ шаг Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π²Π°ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ:

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π·Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈ Π² Attribute Inspector ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Constant Π½Π° 100. Π­Ρ‚ΠΎ заставит ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100, Π½Π΅ зависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π΄Π°Π΄ΠΈΠΌ Π΅ΠΉ Ρ†Π²Π΅Ρ‚:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ Π²ΠΈΠ΄ΠΎΠΌ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ воздСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сам Π²ΠΈΠ΄.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ: "Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ ΠΈΠΌΠ΅Π»Π° ограничСния ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Ρ€Π°Π½Π΅Π΅? Как Π°Π²Ρ‚ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, какая ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ, Ссли Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½Π° это ограничСния?"

На самом Π΄Π΅Π»Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ°, сама ΠΏΠΎ сСбС Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ. Она высчитываСт это ΠΊΠ°ΠΊ ΡˆΠΈΡ€ΠΈΠ½Π° тСкста, плюс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отступ Π΄ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Если Π²Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° Π·Π°Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅, Ρ‚ΠΎ Π² расчСт Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΈ ΠΎΠ½Π°.

Π’Π°ΠΊΠΎΠΉ способ подсчСта извСстСн ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. НС всС элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ способ подсчСта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UILabel). Если Π²ΠΈΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ свой ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ приходится Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ ΠΈ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ограничСния. Об этом ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ совсСм скоро.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π²Π°ΠΌ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π² мСню Editor ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Size to Fit Content. Π­Ρ‚ΠΎ восстановит Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΊΠΈ соотвСтствСнно своСму содСрТимому.

ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΈ ΠΈΡ… супСрвидами (родитСлями), Π½ΠΎ ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Для дСмонстрации этого ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ваш холст. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

УстановитС Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ рядом с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ:

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π±ΠΈΠ»Π΄Π΅Ρ€ опрСдСляСт, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами - ΠΏΠΎ Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠ΅, ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ, ΠΏΠΎ основанию.

Xcode 4 Π±Ρ‹ создал Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…. Но Π² Xcode 5 ΠΈ Π²Ρ‹ΡˆΠ΅, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π’Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² мСню Editor\Pin Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выставляСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²ΠΈΠ΄Π°ΠΌΠΈ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

Π‘Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Π·Π°ΠΆΠ°Π² CTRL, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π΅Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ, это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Когда Π²Ρ‹ отпуститС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΊΠΈ, появится мСню, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Horizontal spacing:

Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΠΎΠ΅, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ хотя Π±Ρ‹ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΊΠΈ извСстСн (ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°), Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ оси X. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ оси Y.

Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΌ позволяСт Xcode. На рисункС Π½ΠΈΠΆΠ΅, Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ, Π΅ΡΡ‚ΡŒ малСнькая бСлая стрСлочка Π½Π° красном Ρ„ΠΎΠ½Π΅, Ссли ΠΌΡ‹ Π΅Π΅ Π½Π°ΠΆΠΌΠ΅ΠΌ, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ выявлСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ позиционирования:

Ну Π²ΠΎΡ‚ ΠΈ славнСнько! Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊ ΠΆΠ΅ Π·Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ CTRL ΠΈ пСрСтаскиваСм Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΊΠΈ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Π½ΠΈΠ·:

Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ мСню Π½Π° этот Ρ€Π°Π· ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню зависят ΠΎΡ‚ контСкста. Π’ нашСм случаС Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Bottom Space to Bottom Layout.

На этот Ρ€Π°Π· ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Vertical Space to the bottom ΠΈ Horizontal Space (Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°). Π’Π°ΠΊ ΠΊΠ°ΠΊ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ малСнькоС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТновато ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Horizontal Space (8) Π² схСмС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

Когда Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° холстС. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

"Вторая ΠΊΠ½ΠΎΠΏΠΊΠ° появляСтся всСгда с Π»Π΅Π²ΠΎΠΉ стороны ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π° расстоянии 8 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ пСрвая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚."

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ справа, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ Ρ„ΠΎΠ½ ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ вмСсто Button, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ A longer label. Когда Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅, ΠΊΠ½ΠΎΠΏΠΊΠ° увСличится Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅, Π² соотвСтствии с тСкстом Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅, Π° вторая ΠΊΠ½ΠΎΠΏΠΊΠ° смСстится. ПослС всСх этих манипуляций, лСвая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ самом расстоянии ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ:

Для большСй увСрСнности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ограничСниями, ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ с Π½ΠΈΠΌΠΈ Π΅Ρ‰Π΅. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° холст ΠΈ размСститС Π΅Π΅ Π½Π°Π΄ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»Π°ΡΡŒ вдоль появившСгося ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π° (Π½Π΅ ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ эти Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ):

Π—Π°Π΄Π°ΠΉΡ‚Π΅ свСТСй ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ„ΠΎΠ½.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ располоТили ΠΊΠ½ΠΎΠΏΠΊΡƒ вдоль ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°, Ρ‚ΠΎ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ стандартноС ΠΈ равняСтся 8 Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ, Ρ‡Ρ‚ΠΎ являСтся Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠ΅ΠΉ HIG. ΠŸΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠΌ это расстояниС Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ пСрСтаскивания с Π·Π°ΠΆΠ°Ρ‚Ρ‹ΠΌ CTRL. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Vertical Spacing Π² появившСмся мСню.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°

АббрСвиатура HIG являСтся сокращСниСм ΠΎΡ‚ iOS Human Interface Guidelines (руководства ΠΏΠΎ созданию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ iOS), содСрТит Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ созданию Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π­Ρ‚ΠΎ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для прочтСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ iOS. HIG ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ подходят Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ситуациях ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ ΠΈΡ… использования. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ Ρ‚ΡƒΡ‚(Π°Π½Π³Π»).

Π₯отя Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π² своих пСрСмСщСниях элСмСнтов ΠΏΠΎ холсту. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ Π²ΠΈΠ΄Ρ‹, ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Vertical Space, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ, просто Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° холстС Π½Π° это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ малСнькой Π³ΠΎΠ»ΡƒΠ±ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ПослС Ρ‡Π΅Π³ΠΎ, ΠΈΠ΄ΠΈΡ‚Π΅ Π² Attribute Inspector:

НабСритС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 40 Π² ΠΏΠΎΠ»Π΅ Constant ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ мСняСтся расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠ½ΠΎΠΏΠΊΠΈ довольно Π΄Π°Π»Π΅ΠΊΠΈ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ ΠΎΠ½ΠΈ связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ для большСго эффСкта:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ, Π½ΠΎ Π½Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ! ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΌΡ‹ Π½Π΅ выставили Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ оси X. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ограничСния ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края экрана Π΄ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ края ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ останСтся ΠΈ для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Ρ‡Ρ‚ΠΎ явно Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ вмСсто этого, ΠΌΡ‹ объясним интСрфСйс Π±ΠΈΠ»Π΄Π΅Ρ€Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

"ЖСлтая ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ всСгда Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ, Π° зСлСная ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½Π° Π»Π΅Π²Ρ‹ΠΌ ΠΊΡ€Π°Π΅ΠΌ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ."

Π’Ρ‹ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ условия, Π½ΠΎ Π½Π΅ для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π±ΠΈΠ»Π΄Π΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ для выравнивания, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π΄ΠΎ появлСния ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π° выравнивания ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ:

Если Π²Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ появится оранТСвая пунктирная Ρ€Π°ΠΌΠΊΠ°, Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ станСт ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ нСбольшоС числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ:

Если Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΄Ρ€ΡƒΠ³ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ, Ρ‚ΠΎ просто опуститС Π²Π°ΡˆΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° 6 Π΅Π΄ΠΈΠ½ΠΈΡ† Π²Π½ΠΈΠ·, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стрСлочки, ΠΈΠ»ΠΈ просто пСрСтаскиваСм ΠΌΡ‹ΡˆΠΊΠΈ.

НаконСц-Ρ‚ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ пСрСтаскиваниС с Π·Π°ΠΆΠ°Ρ‚Ρ‹ΠΌ CTRL Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΆΠ΅Π»Ρ‚ΡƒΡŽ. ΠŸΡ€ΠΈ отпускании ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΊΠΈ Π½Π° ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ появится мСню, Π³Π΄Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Left. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, созданноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΈ Π½ΡƒΠΆΠ½ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π»Π΅Π²Ρ‹Π΅ края Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ ΠΆΠ΅Π»Ρ‚Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ваш Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄Ρ‹:

Π§Ρ‚ΠΎ дальшС?

Π”Π°Π»ΡŒΡˆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ наши Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… появлСния, Π° Ρ‚Π°ΠΊΠΆΠ΅, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ языку программирования Swift. И, для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ изучСния языка, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ наши курсы!

Π£Ρ€ΠΎΠΊ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»: Иван Акулов

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ΡƒΡ€ΠΎΠΊΠ°: http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1


ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ
0
0
0
0
0

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ
Π’ΠΎΠΉΡ‚ΠΈ
Акулов Иван Борисович
ΠŸΠΈΡˆΠ΅Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΡΡ‚Π°Ρ‚ΡŒΠΈ для SwiftBook