Как подключить фазу и ноль в розетке


Фаза и ноль в розетке

Чтобы разобраться в том, что такое фаза и ноль в розетке, обычному человеку (не специалисту) нет необходимости углубляться в электротехнические дебри. В качестве примера приведем обычную штепсельную розетку, куда поступает переменный ток.

К розетке идут два электропровода — нулевой и фазный. Ток поступает только по одному из них — фазному (еще его называют рабочей фазой). Второй провод — нулевой (или нулевая фаза).

к содержанию ↑

Ноль и фаза в старых розетках

Чтобы подключить старую розетку, используют два проводника. Одни из них синего цвета (рабочий нулевой проводник). По этому проводу идет ток от источника электричества к бытовому прибору. Если взяться за токоведущий провод, но не дотрагиваться до второго провода, удара током не произойдет.

Второй провод в розетке — фазный. Он бывает самых разных цветов, в том числе синим, зелено-желтым или голубым.

Обратите внимание! Любое напряжение, превышающее 50 вольт, опасно для жизни.

к содержанию ↑

Фаза и ноль в современной розетке

В устройствах современного типа есть три провода. Фаза бывает любого цвета. Помимо фазы и нуля имеется еще один провод (защитный нулевой). Цвет этого проводника — зеленый или желтый.

Через фазу подается напряжение. Ноль используется для защитного зануления. Третий провод нужен как дополнительная защита — для забора лишнего тока во время замыкания. Ток перенаправляется в землю или в обратную сторону — к источнику электричества.

Обратите внимание! Не имеет практического значения, справа или слева расположены фаза и ноль. Однако чаще всего фаза расположена слева, а ноль — справа.

к содержанию ↑

Определение фазы и ноля мультиметром или отверткой

Мультиметр

Прибор представляет собой комбинированное электроизмерительное устройство, способное выполнять несколько функций. Минимальная комплектация включает вольтметр, омметр и амперметр. Отдельные модификации выполнены в виде токоизмерительных клещей. Выпускаются как аналоговые, так и электронные измерители.

Чтобы начать процесс замера, следует переключиться в режим измерения переменного напряжения. Замер осуществляется одним из нескольких методов:

  1. Зажимаем один из имеющихся щупов двумя пальцами. Второй щуп направляем к контакту, который расположен в выключателе или розетке. Если данные на мониторе несущественные (не превышают 10 вольт), речь идет о нуле. Если же прикоснуться к другому контакту, показатель будет выше — это фаза.
  2. Если имеются опасения относительно необходимости притрагиваться к щупу, есть другой путь. Один из стержней направляем в розетку. Вторым стержнем прикасаемся непосредственно к стене рядом с розеткой. Результат будет примерно таким же, как и в случае, описанном выше.
  3. Существует третий способ измерения с помощью мультиметра. Прикасаемся щупом к заземленной поверхности (например, корпусу оборудования). Вторым щупом касаемся измеряемой поверхности. Если провод является фазой, мультитестер обнаружит напряжение в 220 вольт.
к содержанию ↑

Индикаторная отвертка

Индикатор — простой способ определения фазы, доступный даже человеку, впервые занявшемуся этим делом. Контрольная отвертка внешне напоминает стандартную. Отличие состоит в наличии внутреннего устройства у индикаторной отвертки. Рукоять отвертки производится из специального прозрачного пластика. Внутри находится диод. Верхняя часть изготовлена из металла.

Обратите внимание! Нельзя использовать индикаторную отвертку не по назначению. Она не предназначена для отвинчивания и закручивания винтов. Нецелевое использование контрольной отвертки станет причиной выхода ее из строя.

Чтобы найти фазу и ноль при помощи отвертки, нужно выполнить такую последовательность операций:

  1. Концом отвертки касаемся контакта.
  2. Нажимаем пальцем на металлическую кнопку вверху отвертки.
  3. Если светодиод загорелся, речь идет о фазе. Если он не реагирует — это ноль.

Обратите внимание! Индикаторная лампа, рассчитанная на 220–380 вольт, будет светиться при напряжении, превышающем 50 вольт.

При работе с индикаторной отверткой рекомендуется придерживаться следующих мер безопасности:

  1. Не дотрагиваться до нижнего конца отвертки во время проведения замеров.
  2. Держать отвертку в чистоте, иначе велик риск нарушения изоляции.
  3. Если нужно определить отсутствие напряжения, вначале проверить работоспособность прибора, совершенно точно находящегося под напряжением.

Совет! В сети постоянного тока полярность контактов определяется очень простым способом. Для этого достаточно опустить провода в емкость с водой. Возле одного из проводов станут образовываться пузыри — это минус. Второй провод — плюс.

Не следует путать индикаторную отвертку с приспособлением для прозвона. Отвертка для прозвона снабжена батарейками. При работе с таким устройством для определения нуля и фазы не нужно нажимать на кнопку, так как отвертка будет светиться в любой из возможных ситуаций.

Фаза и ноль в розетке - как их определить - Электроника

Электромонтаж в квартире - такая работа, которую не все домашние мастера рискуют выполнять самостоятельно, пытаясь переложить ее на плечи профессионалов. Однако есть такие задачи, для решения которых будет как минимум неловко вызвать специалиста - для их выполнения не требуется никаких навыков. К ним относятся нахождение фазы и нуля в розетке, а затем установка. Для мастеров, имеющих даже небольшой опыт работы, такая работа не представляет проблем, она элементарна.Но для тех, кто впервые столкнулся с подобной задачей, сегодняшняя статья будет очень полезной или как минимум интересной.

Зачем нужно знать расположение фазного и нулевого проводов?

Есть люди, которые даже не знают таких понятий, но любой уважающий себя хозяин должен понимать разницу между этими терминами. Определение фазного, нулевого и заземляющего проводов необходимо для правильной установки розеток. Если речь идет о распределительной коробке, то задача еще важнее.Подключение к коммутатору без такой проверки не пройдет. Ведь если к выключателю подать те же провода, что и в розетку (фаза / ноль), то единственное, чего может добиться мастер, - это короткое замыкание.

Есть несколько способов определить: от всего обычного до поистине экзотического. Достаточно взглянуть на точку подключения, чтобы понять, где фаза в розетке и ноль не работает - ГОСТ не предусматривает конкретного расположения (справа или слева). Так что к этому вопросу стоит отнестись более внимательно.Но сначала немного теории.

Откуда 220 вольт?

На ближайшую к дому ТП поступает по трехфазному проводу 6 кВ. Именно на нем падает напряжение до обычных 0,4 кВ, распределяемых по силовым экранам. Ноль также выглядит следующим образом. Все 3 обмотки трансформаторов на подстанции подключены «в звезду». При таком переключении в центре, где концы катушек соприкасаются, образуется рабочий ноль. После подключения к схеме подстанции она оказывается заземленной нейтралью, которая идет по трем фазам (380 В) в дома и квартиры.

Может возникнуть вопрос: если пришло 380 В (4 провода), почему в розетке фаза и ноль образуют 220 В? Здесь все просто: 380 В - это напряжение между двумя жилами, называемое фазным. Если вместо одного из них взять ноль, то получится линейное 220 В. Только в этом случае может работать бытовая техника.

Как проходят провода в квартиру?

Если говорить о схемах, то здесь маркировка такая:

  • L - фаза.
  • N равен нулю.
  • PE - заземление.

Сами проводники имеют цветовую кодировку - желто-зеленый (земля), синий или синий (ноль), любой другой цвет (фаза). Электрики даже с небольшим опытом знают, что соблюдение требований обязательно. Действительно, помимо удобства inst

.

Как определить ноль и фазу? Цвет провода

На самом деле существует не так много разных видов проводов и их соединений. В электроэнергетике различают питающие и защитные проводники. Некоторые слышали такие слова, как «нулевой» и «фазный» провод. Однако есть вопросы. Как определить ноль и фазу в реальной сети?

Какие проводники в розетке?

В вопросе «что такое фаза и ноль» можно понять, не углубляясь в дебри выяснения структуры, достоинств и отрицательных моментов в трехфазных или пятифазных цепях.Вы можете разобрать все на пальцах, вскрыв самую обычную домашнюю розетку, которую ставили в квартире или частном доме лет десять-пятнадцать назад. Как видите, эта розетка подключена к двум проводам. Как определить ноль и фазу?

Как провода работают в розетке и зачем они нужны?

Как видно, есть определенные отличия между рабочими и нулями. Какое обозначение фазы и нуля? Голубоватый или синий цвет - это цвет фазы провода, ноль обозначается любыми другими цветами, кроме, конечно, синего цвета.Он может быть желтым, зеленым, черным и полосатым. По нулевому проводнику ток не идет. Если взять и не трогать рабочий, ничего не произойдет - разницы потенциалов нет (на самом деле сеть не идеальная, и небольшое напряжение еще может быть, но в лучшем случае будет измеряться в милливольтах). Но с фазным проводом так не получится. Прикосновение к нему может вызвать поражение электрическим током, даже со смертельным исходом. Этот провод всегда находится под напряжением, он питается от генераторов и трансформаторов электрических подстанций и станций.Всегда нужно помнить, что трогать рабочую направляющую ни в коем случае нельзя, так как напряжение даже в сто вольт может быть фатальным. А в розетке фазное напряжение двести двадцать.

Чем Евросеть отличается от советской?

Как в этом случае определить ноль и фазу? В розетке, спроектированной по европейским стандартам, идет сразу три проводника. Первый - фазовый, он заряжен и окрашен в разные цвета (за исключением синих оттенков).Второй - ноль, абсолютно безопасен для прикосновения и окрашен в синий цвет. А вот третий провод называется нулевым защитным. Обычно его окрашивают в желтый или зеленый цвет. Укореняется в розетках слева, в выключателях - снизу. Фазовый провод находится справа и вверху соответственно. Учитывая такие цвета и особенности, легко определить, где фаза, а где ноль, а где защитный нулевой провод. Но для чего это нужно?

Зачем нужен защитный провод в евророзетках?

Если фаза предназначена для подачи тока на выход, ноль - для вывода на источник, почему европейские стандарты регламентируют другой провод? Если подключенное оборудование исправно, а вся проводка в рабочем состоянии, то защитный ноль не будет участвовать, он простаивает.Но если вдруг произойдет короткое замыкание или перенапряжение, или короткое замыкание на какие-то части устройств, то ток попадет в места, которые обычно без его влияния, то есть не подключены ни к фазе, ни к нулю. Человек может просто почувствовать на себе удар током. В худшем случае от этого можно даже умереть, потому что сердечная мышца может остановиться. Здесь и нужен защитный нейтральный провод. Он «берет» ток короткого замыкания и отправляет его на землю или на источник.Такие тонкости зависят от конструкции разводки и характеристик помещения. Поэтому можно смело трогать технику - поражения электрическим током не будет. Дело в том, что ток всегда течет по пути наименьшего сопротивления. У тела человека величина этого параметра составляет более одного килограмма. На защитном проводе сопротивление не превышает нескольких десятых одного Ом.

Определение назначения проводов

Как определить ноль и фазу? Кто-нибудь так или иначе сталкивался с этими концепциями.Особенно когда необходимо отремонтировать розетку или установить проводку. Поэтому необходимо точно понимать, где находится проводник. Но как определить ноль и фазу? Необходимо помнить, что все подобные манипуляции с электричеством опасны. Поэтому в случае неуверенности в своих действиях лучше обратиться к специалисту. Если вы уже подходите к розетке и проводам в ней, необходимо предварительно полностью отключить всю квартиру. Как минимум, он может сохранить здоровье и жизнь.Как уже было сказано ранее, обычно обозначение фазы и нуля производится окраской. При правильной маркировке отличить их не составит труда. Черный (или коричневый) - цвет фазы провода, ноль обычно имеет голубоватый или голубоватый оттенок. Если установлена ​​розетка европейского стандарта, третья (защитный ноль) выполнена в зеленом или желтом цвете. Что делать, если проводка одноцветная? Как правило, в таком случае на концах проводов обычно находятся специальные изоляционные трубки, имеющие необходимую цветовую маркировку.Их называют «батистами».

Определение проводов специальной отверткой

Как определить ноль и фазу? Для этого удобнее всего купить специальную индикаторную отвертку. Ручка такого устройства сделана из полупрозрачного или прозрачного пластика. Внутри встроенный диод - горящая лампочка. Верхняя часть отвертки металлическая. Как этим методом определить ноль и фазу?

Порядок проведения работ при замере индикаторной отверткой:

  • Обесточиваем квартиру;
  • слегка очистите концы проводов;
  • разводим их в стороны, чтобы случайно не вызвать короткое замыкание при контакте фазы и нуля;
  • включить выключатель и подать ток в квартиру;
  • Берём отвертку за ручку, которая имеет диэлектрическое покрытие;
  • Ставим палец (большой или указательный) на контакт, который находится на тыльной стороне розетки;
  • прикоснуться рабочим концом индикатора к одному оголенному проводнику;
  • внимательно наблюдать за реакцией отвертки;
  • Если загорелся диод, то можно с уверенностью констатировать, что это фаза;
  • по исключению, понимаем, что оставшийся проводник нулевой.

Индикаторная отвертка реагирует на наличие напряжения. Естественно, в нулевом проводе его нет. Однако у этого метода есть существенный недостаток. С помощью индикаторной отвертки не поймешь, как определить: фаза, ноль, земля - ​​где что с европейской розеткой.

Метод определения фазы и нуля с помощью вольтметра

Если провода не окрашены в соответствующие цвета, а под рукой нет индикаторной отвертки, можно пойти другим путем.Нам понадобится вольтметр (мультиметр, тестер). Необходимо выставить требуемый диапазон - более двухсот вольт переменного тока

.

От того, как это работает и почему это помогает, к самопроверке и преимуществам

Что такое торговая точка GFCI?

Прерыватель цепи замыкания на землю - это защитное устройство, специально разработанное для размыкания цепи каждый раз, когда возникает дисбаланс между входящим и исходящим токами. Розетка GFCI защищает электрическую проводку и розетки от перегрева и возможного возгорания, что значительно снижает риск поражения электрическим током и смертельных ожогов. Он также обнаруживает замыкания на землю и нарушает прохождение тока, но не должен использоваться для замены предохранителя, так как не обеспечивает защиты от короткого замыкания и перегрузки.

Как работает розетка GFCI?

GFCI встроен в электрическую розетку и постоянно отслеживает ток, протекающий в цепи, чтобы определять колебания в реальном времени. Он имеет три отверстия: два из них предназначены для нейтрального и горячего провода, а третье отверстие в середине розетки служит заземляющим проводом. Если он обнаружит какое-либо изменение электрического потока в цепи, он немедленно отключит поток электричества. Так, если вы, например, используете фен, и он скользит в раковину, наполненную водой, розетка GFCI немедленно обнаружит прерывание и отключит питание, чтобы обеспечить электрическую безопасность в ванной и за ее пределами.

Где нужна розетка GFCI?

Розетки GFCI важны, особенно когда электрические розетки расположены близко к воде. Установка розеток GFCI на вашей кухне, в ванных комнатах, прачечных, у бассейна и т. Д. - хорошая идея. Помимо того, что это важная превентивная мера, закон также требует, чтобы в вашем доме были установлены розетки GFCI. Согласно Национальному электротехническому кодексу (NEC), все дома должны быть оборудованы защитой GFCI. Первоначально от вас требовалось установить только розетки GFCI рядом с водой, но в последние годы это требование было распространено на все однофазные розетки на 125 вольт.Розетки GFCI также следует устанавливать на временных системах электропроводки во время строительства, ремонта или обслуживания конструкций, которые временно используют электроэнергию.

Почему срабатывает розетка GFCI и что делать, когда она срабатывает

Прерыватель цепи замыкания на землю по существу предназначен для предотвращения замыканий на землю, немедленно прерывая ток от розетки. Вот почему периодическое тестирование очень важно, чтобы гарантировать постоянную работоспособность розетки GFCI. Если розетка GFCI часто отключается, вероятно, потребуется дополнительное исследование сертифицированным электриком, поскольку это также может быть результатом изношенной изоляции, скопившейся пыли или плохой проводки.

Самотестирование прерывателя цепи замыкания на землю

Розетку GFCI рекомендуется проверять каждый месяц и заменять каждые десять лет. Вы можете выполнить следующие простые шаги, чтобы проверить, правильно ли работает прерыватель цепи:

  1. На лицевой стороне розетки GFCI есть две маленькие кнопки, которые помечены как test и reset. Просто нажмите кнопку тестирования, и это вызовет щелчок, который указывает на срабатывание розетки.
  2. После отключения питания вы можете проверить эффективность блока GFCI с помощью вольтметра.
  3. Теперь подключите устройство к розетке и, когда оно перестанет работать, нажмите кнопку тестирования, чтобы убедиться в предохранительном механизме.
  4. Как только вы узнаете, что розетка CFGI работает с максимальной эффективностью, вы можете нажать кнопку сброса, и прерыватель цепи снова включится.

Несмотря на то, что эти инструкции «сделай сам» просты в использовании, они требуют, чтобы вы знали и понимали, как работает электрическая система вашего дома. Всегда рекомендуется работать с сертифицированным электриком, который может убедиться, что ваша система соответствует соответствующим нормам, чтобы ваш дом оставался защищенным от электрического пожара.



Как установить розетку GFCI

Шаг 1. Проверьте наличие защиты от GFCI в вашем доме

В большинстве штатов строительные нормы и правила теперь требуют установки вилок GFCI во влажных зонах домов, таких как прачечные, ванны, кухни, гаражи и другие места, которые могут быть подвержены поражению электрическим током из-за влаги. Итак, проверьте свой дом, чтобы увидеть, установлены ли в нем какие-либо розетки GFCI.

Шаг 2. Отключите питание
a) Отключите питание предохранителем или автоматическим выключателем.
б) Снимите настенную пластину и с помощью тестера убедитесь, что питание отключено.

Шаг 3: Снимите старую розетку

a) Снимите существующую розетку, которую заменит вилка GFCI, и вытащите ее из монтажной коробки.
б) Это откроет 2 или более проводов. Убедитесь, что провода не касаются друг друга, а затем включите переключатель.
c) Используйте тестер, чтобы определить провода, по которым идет питание.
г) Пометьте эти провода и снова выключите питание.

Шаг 4. Установка розетки GFCI

Розетка GFCI состоит из 2 комплектов проводов, помеченных как «линия» и «нагрузка».Линейный комплект передает входящую мощность, а комплект нагрузки распределяет мощность между дополнительными розетками, а также обеспечивает защиту от ударов. Подключите провод питания (черный) к линейному набору, а белый провод к нагрузке, установленной на розетке GFCI. Закрепите соединения проволочной гайкой и оберните их изолентой для дополнительной безопасности. Теперь подключите заземляющий провод к зеленому винту на вилке GFCI.

После этого вставьте вилку GFCI обратно в коробку и снова накройте ее настенной пластиной.

Преимущества установки розетки GFCI

Помимо уверенности в том, что вы и ваша семья защищены от поражения электрическим током, установка розеток GFCI поможет вам:

  1. Предотвращение поражения электрическим током основные риски, которым вы можете подвергнуться из-за электрических устройств в вашем доме. Это становится еще большей проблемой, если у вас есть дети, которые могут неосознанно прикоснуться к приборам и получить шок.Розетка GFCI помогает предотвратить удары током и поражение электрическим током, так как имеет встроенный датчик, который контролирует приток и отток электричества от любого устройства. Если провод под напряжением внутри устройства соприкасается с металлической поверхностью устройства, вы получите удар при прикосновении к нему. Однако, если вы подключите устройство к розетке GFCI, он заметит, есть ли какие-либо изменения в электрический поток, который может возникнуть из-за ослабленного провода, и он немедленно отключит питание.Они будут тяжелее в ваших карманах по сравнению с обычными торговыми точками, но преимущество безопасности определенно перевесит недостаток стоимости в долгосрочной перспективе.
  2. Предотвращение смертельных электрических пожаров
    Одна из основных функций розетки GFCI - обнаруживать замыкания на землю, которые возникают, когда электрический ток выходит из цепи. Они несут ответственность за возникновение электрических пожаров. Устанавливая розетки GFCI, вы эффективно предотвращаете возникновение электрических пожаров.Вы можете утверждать, что электрические предохранители также обеспечивают базовую защиту от электрических пожаров, однако, когда вы объедините их с розетками GFCI, вероятность возникновения электрических пожаров и причинения вреда вам и вашим близким почти сведется к нулю.
  3. Избегайте повреждения приборов
    Существует большая вероятность того, что изоляция прибора со временем сломается. Если не обрыв, то в утеплителе обязательно будет несколько трещин. Некоторое количество электрического тока начинает течь через эти трещины в бытовые приборы и другие электронные устройства.Если внешний корпус прибора не металлический, то вы не получите удара током, но постоянная утечка тока приведет к повреждению оборудования в долгосрочной перспективе. Если он имеет металлический корпус, вы также испытаете поражение электрическим током. Однако, когда у вас есть устройство, подключенное к розетке GFCI, вы можете не беспокоиться о том, что ваши устройства будут повреждены из-за утечки тока. Цепь GFCI обнаружит утечку и отключит цепь, предотвращая повреждение дорогостоящего оборудования и приборов в результате утечки электричества.Вы можете сэкономить много денег, избавившись от необходимости постоянно ремонтировать или заменять поврежденные электрические устройства.

Установите розетки GFCI как дома, так и на рабочем месте, прежде всего из соображений безопасности. Не забывайте устанавливать их только у лицензированных электриков и профессионалов. Вы не можете назначить цену за безопасность своих близких, и магазины GFCI предложат вам душевное спокойствие в этом аспекте.

У нас, в D & F Liquidators , есть высококачественные розетки GFCI, которые вы можете установить у себя дома по конкурентоспособным ценам.Свяжитесь с нами, чтобы узнать больше.

D&F Liquidators обслуживает потребности в строительных материалах для электротехники более 30 лет. Это международная информационная служба площадью 180 000 квадратных метров, расположенная в Хейворде, Калифорния. Он хранит обширный инвентарь электрических разъемов, кабелепроводов, автоматических выключателей, распределительных коробок, проводов, предохранительных выключателей и т. Д. Он закупает электрические материалы у ведущих компаний по всему миру. Компания также ведет обширный инвентарь взрывозащищенной продукции и современных решений для электрического освещения.Поскольку компания D&F закупает материалы оптом, она имеет уникальную возможность предложить конкурентоспособную структуру ценообразования. Кроме того, он может удовлетворить самые взыскательные запросы и отгрузить материал в тот же день.

.

UIGestureRecognizer Tutorial: Начало работы | raywenderlich.com

Примечание об обновлении : Райан Аккерманн обновил это руководство для Xcode 11, Swift 5 и iOS 13. Кэролайн Бегби и Броди Эллер написали более ранние обновления, а Рэй Вендерлих написал оригинал.

В iOS для пользовательского ввода используются такие жесты, как касание, щипание, панорамирование или поворот. В своем приложении вы можете реагировать на жесты, например нажатие на кнопку, даже не задумываясь о том, как их обнаружить. Но если вы хотите использовать жесты в представлениях, которые их не поддерживают, вы можете легко сделать это с помощью встроенных классов UIGestureRecognizer .

В этом руководстве вы узнаете, как добавить распознаватели жестов в приложение как в редакторе раскадровки в Xcode, так и программно.

Вы сделаете это, создав приложение, в котором вы можете перемещать обезьяну и банан, перетаскивая, зажимая и вращая их с помощью распознавателей жестов.

Вы также можете попробовать несколько интересных дополнительных функций, например:

  • Добавление замедления движения.
  • Установка зависимостей между распознавателями жестов.
  • Создание пользовательского UIGestureRecognizer , чтобы можно было пощекотать обезьяну.

Предполагается, что вы знакомы с основными концепциями раскадровки . Если вы новичок в них, возможно, вы сначала захотите ознакомиться с нашими руководствами по раскадровке.

Обезьяна только что показала вам большой палец вверх, так что пора начинать! :]

Начало работы

Чтобы начать, нажмите кнопку Загрузить материалы вверху или внизу этого руководства.Внутри zip-файла вы найдете две папки: , начало и , конец .

Откройте папку begin в Xcode, затем соберите и запустите проект.

На устройстве или в симуляторе вы должны увидеть следующее:

Обзор UIGestureRecognizer

Прежде чем вы начнете, вот краткий обзор того, почему UIGestureRecognizer так удобны и как их использовать.

Для обнаружения жестов потребовалось намного больше работы, прежде чем UIGestureRecognizer были доступны.Например, если вы хотите обнаружить смахивание, вам нужно было зарегистрироваться для получения уведомлений - например, касаний, начальных , касаний, перемещенных, и касаний, округленных, - при каждом касании в UIView . Это создавало тонкие ошибки и несоответствия между приложениями, потому что каждый программист писал немного другой код для обнаружения этих прикосновений.

В iOS 3.0 на помощь пришла Apple с классами UIGestureRecognizer . Они обеспечивают реализацию по умолчанию для обнаружения распространенных жестов, таких как касания, защемления, вращения, пролистывания, панорамирования и долгих нажатий.Их использование не только экономит массу кода, но и заставляет ваши приложения работать должным образом. Конечно, вы все еще можете использовать старые сенсорные уведомления, если они требуются вашему приложению.

Чтобы использовать UIGestureRecognizer , выполните следующие действия:

  1. Создание распознавателя жестов : при создании распознавателя жестов вы указываете цель и действие, чтобы распознаватель жестов мог отправлять вам обновления, когда жест начинается, изменяется или заканчивается.
  2. Добавление распознавателя жестов в представление : Вы связываете каждый распознаватель жестов с одним и только одним представлением.Когда прикосновение происходит в пределах этого представления, распознаватель жестов проверяет, соответствует ли оно типу касания, которое он ищет. Если он находит совпадение, он уведомляет цель.

Эти два шага можно выполнить программно, что вы сделаете позже в этом руководстве. Но это еще проще сделать с помощью редактора раскадровки, которым вы воспользуетесь в следующий раз.

Использование UIPanGestureRecognizer

Открыть Main.storyboard . Нажмите кнопку Plus вверху, чтобы открыть Library .

Внутри панели Library найдите объект распознавателя жестов панорамирования и перетащите его в представление изображения обезьяны. Это создает как распознаватель жестов панорамирования, так и его связь с представлением изображения обезьяны:

Вы можете проверить соединение, щелкнув изображение обезьяны, посмотрев на Connections Inspector в View> Inspectors> Show Connections Inspector и убедившись, что распознаватель жестов панорамирования находится в gestureRecognizers 's Outlet Collection .

В проекте begin были подключены два других распознавателя жестов: Pinch Gesture Recognizer и Rotation Gesture Recognizer . Он также подключал распознаватели жестов панорамирования, сжатия и поворота к просмотру изображения банана.

Итак, почему вы связали UIGestureRecognizer с представлением изображения, а не с самим представлением?

Вы можете подключить его к представлению, если это имеет наибольший смысл для вашего проекта.Но поскольку вы привязали его к обезьяне, вы знаете, что любые прикосновения находятся в пределах границ обезьяны. Если это то, чего вы хотите, то вперед.

Если вы хотите обнаруживать касания за пределами изображения, вам нужно добавить распознаватель жестов к самому виду. Но учтите, что вам нужно будет написать дополнительный код, чтобы проверить, касается ли пользователь границ самого изображения, и отреагировать соответствующим образом.

Теперь, когда вы создали распознаватель жестов панорамирования и связали его с представлением изображения, вы должны написать действие, чтобы что-то действительно происходило, когда происходит панорамирование.

Реализация жеста панорамирования

Откройте ViewController.swift и добавьте следующий метод прямо под viewDidLoad () внутри ViewController :

 @IBAction func handlePan (_ gesture: UIPanGestureRecognizer) { // 1 let translation = gesture.translation (in: view) // 2 guard let gestureView = gesture.view else { возвращение } gestureView.center = CGPoint ( x: gestureView.center.x + translation.x, y: gestureView.center.y + translation.y ) // 3 gesture.setTranslation (.zero, in: view) } 

UIPanGestureRecognizer вызывает этот метод, когда он сначала обнаруживает жест панорамирования, затем непрерывно, когда пользователь продолжает панорамирование, и последний раз, когда панорамирование завершается - обычно, когда пользователь поднимает палец.

Вот что происходит в этом коде:

  1. UIPanGestureRecognizer передает себя в качестве аргумента этому методу.Вы можете узнать количество перемещений пальца пользователя, позвонив по номеру translation (в :) . Затем вы используете это количество, чтобы переместить центр обезьяны на такое же расстояние.
  2. Обратите внимание, что вместо жесткого кодирования представления изображения обезьяны в этом методе вы получаете ссылку на представление изображения обезьяны, вызывая gesture.view . Это делает ваш код более универсальным, так что вы можете повторно использовать эту же процедуру для просмотра изображения банана позже.
  3. Очень важно сбросить перевод обратно на ноль, когда вы закончите.В противном случае перевод будет постоянно усложняться, и вы увидите, как ваша обезьяна быстро уходит с экрана!

Теперь, когда этот метод завершен, вы подключите его к UIPanGestureRecognizer .

Подключение жеста панорамирования к распознавателю

В схеме документа для Main.storyboard перетащите с нажатой клавишей Control перетаскивание из распознавателя жестов панорамирования обезьяны на контроллер представления . Выберите handlePan: во всплывающем окне.

На этом этапе инспектор Connections для распознавателя жестов панорамирования должен выглядеть так:

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

Разрешение изображениям воспринимать прикосновения

Исправьте это, выбрав оба представления изображения, открыв инспектор атрибутов и установив флажок Взаимодействие с пользователем включено .

Постройте и снова запустите. На этот раз вы можете перетащить обезьяну по экрану!

Обратите внимание, что вы по-прежнему не можете перетащить банан, потому что вам нужно подключить его собственный распознаватель жестов панорамирования к handlePan (_ :) . Сделай это сейчас.

  1. Удерживая нажатой клавишу Control, перетащите из распознавателя жестов панорамирования Banana на контроллер представления и выберите handlePan: .
  2. Еще раз проверьте, что вы также отметили User Interaction Enabled на банане.

Сборка и запуск. Теперь вы можете перетаскивать оба изображения по экрану. Довольно легко реализовать такой крутой и забавный эффект, а?

Добавление замедления к изображениям

Приложения и элементы управления Apple обычно немного замедляются до завершения анимации. Вы видите это, например, при прокрутке веб-представления. Вы часто захотите использовать этот тип поведения в своих приложениях.

Есть много способов сделать это. Подход, который вы будете использовать в этом руководстве, дает хороший эффект без особых усилий.Вот что вы сделаете:

  1. Определить, когда жест заканчивается.
  2. Рассчитайте скорость касания.
  3. Анимируйте объект, движущийся к конечному пункту назначения, в зависимости от скорости касания.

И вот как вы достигнете этих целей:

  • Чтобы определить, когда жест заканчивается. : Множественные вызовы функции обратного вызова распознавателя жестов происходят при изменении состояния распознавателя жестов. Примеры таких состояний: началось , изменено или закончилось .Вы можете узнать текущее состояние распознавателя жестов, посмотрев на его свойство state .
  • Для определения скорости касания : Некоторые распознаватели жестов возвращают дополнительную информацию. Например, UIPanGestureRecognizer имеет удобный метод, называемый скоростью (в :) , который возвращает, как вы уже догадались, скорость!
Примечание : Вы можете просмотреть полный список методов для каждого распознавателя жестов в руководстве по API.

Упрощение анимации

Начните с добавления следующего в конец handlePan (_ :) в ViewController.swift :

 guard gesture.state == .ended else { возвращение } // 1 let velocity = gesture.velocity (in: view) пусть величина = sqrt ((скорость.x * скорость.x) + (скорость.y * скорость.y)) пусть slideMultiplier = magnitude / 200 // 2 пусть slideFactor = 0.1 * slideMultiplier // 3 var finalPoint = CGPoint ( x: gestureView.center.x + (velocity.x * slideFactor), y: gestureView.center.y + (velocity.y * slideFactor) ) // 4 finalPoint.x = min (max (finalPoint.x, 0), view.bounds.width) finalPoint.y = min (max (finalPoint.y, 0), view.bounds.height) // 5 UIView.animate ( withDuration: Double (slideFactor * 2), задержка: 0, // 6 варианты: .curveEaseOut, анимации: { gestureView.center = finalPoint }) 

В этом простом уравнении замедления используется следующая стратегия:

  1. Вычисляет длину вектора скорости (т. Е. Величину).
  2. Уменьшает скорость, если длина <200.В противном случае увеличивает его.
  3. Вычисляет конечную точку на основе скорости и слайд-фактора.
  4. Убедиться, что конечная точка находится в пределах границ обзора.
  5. Анимирует вид на место последнего упокоения.
  6. Использует опцию анимации замедлить , чтобы замедлить движение с течением времени.

Постройте и запустите, чтобы попробовать. Теперь у вас должно быть базовое, но приятное замедление! Не стесняйтесь экспериментировать с ним и улучшать его. Если вы придумали лучшую реализацию, поделитесь ею в обсуждении на форуме в конце этой статьи.

Жесты сжатия и вращения

Ваше приложение пока продвигается отлично, но было бы еще круче, если бы вы могли масштабировать и вращать представления изображений с помощью жестов сжатия и поворота!

Начальный проект дает вам отличное начало. Он создал для вас handlePinch (_ :) и handleRotate (_ :) . Он также связал эти методы с просмотром изображений обезьян и бананов. Теперь вы завершите реализацию.

Реализация жестов сжатия и вращения

Открыть ViewController.swift . Добавьте следующее к handlePinch (_ :) :

 guard let gestureView = gesture.view else { возвращение } gestureView.transform = gestureView.transform.scaledBy ( x: gesture.scale, y: gesture.scale ) gesture.scale = 1 

Затем добавьте следующее к handleRotate (_ :) :

 охранник let gestureView = жест.view else { возвращение } gestureView.transform = gestureView.transform.rotated ( автор: gesture.rotation ) gesture.rotation = 0 

Точно так же, как вы получили перевод из UIPanGestureRecognizer , вы получаете масштаб и поворот из UIPinchGestureRecognizer и UIRotationGestureRecognizer .

К каждому виду применяется преобразование, которое дает информацию о повороте, масштабе и перемещении, которые должно иметь вид.У Apple есть множество встроенных методов, упрощающих работу с преобразованием. К ним относятся CGAffineTransform.scaledBy (x: y :), для масштабирования данного преобразования и CGAffineTransform.rotated (by :) для поворота данного преобразования.

Здесь вы используете эти методы для обновления преобразования представления на основе жестов пользователя.

Опять же, поскольку вы обновляете вид каждый раз, когда обновляется жест, очень важно вернуть масштаб и поворот в состояние по умолчанию, чтобы не происходило безумия.

Теперь подключите эти методы в редакторе раскадровки. Откройте Main.storyboard и выполните следующие действия:

  1. Как и ранее, подключите два распознавателя жестов сжатия к handlePinch: контроллера представления.
  2. Подключите два распознавателя жестов поворота к ручке контроллера представленияRotate: .

Теперь соединения вашего контроллера представления должны выглядеть следующим образом:

Постройте и запустите на устройстве, если это возможно, потому что сжимать и вращать на симуляторе сложно.

Если вы работаете на симуляторе, нажмите и удерживайте клавишу Option и перетащите, чтобы имитировать два пальца. Затем одновременно нажмите и удерживайте Shift и Option , чтобы смоделировать пальцы вместе в другое положение.

Теперь вы можете масштабировать и вращать обезьяну и банан!

Распознаватели одновременных жестов

Вы можете заметить, что если вы положите один палец на обезьяну, а другой на банан, вы можете перетаскивать их одновременно.Довольно круто, а?

Однако вы заметите, что если вы попытаетесь перетащить обезьяну, а в середине перетаскивания опустите второй палец, чтобы уменьшить масштаб, это не сработает. По умолчанию, как только один распознаватель жестов в представлении «заявляет» о жесте, другие распознаватели жестов не могут принять его.

Однако это можно изменить, переопределив метод в делегате UIGestureRecognizer .

Возможность одновременного выполнения двух жестов

Откройте ViewController.Свифт . Под ViewController создайте расширение класса ViewController и согласовайте его с UIGestureRecognizerDelegate :

 extension ViewController: UIGestureRecognizerDelegate { } 

Затем реализуйте один из дополнительных методов делегата:

 func gestureRecognizer ( _ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSim одновременноWith otherGestureRecognizer: UIGestureRecognizer ) -> Bool { вернуть истину } 

Этот метод сообщает распознавателю жестов, можно ли распознать жест, если другой распознаватель уже обнаружил жест.Реализация по умолчанию всегда возвращает false , но вы переключили ее на всегда возвращать true .

Затем откройте Main.storyboard и подключите выход делегата каждого распознавателя жестов к контроллеру представления. Всего вы подключите шесть распознавателей жестов.

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

Программные UIGestureRecognizers

До сих пор вы создали распознаватели жестов с помощью редактора раскадровки, но что, если вы хотите делать что-то программно?

Ну почему бы не попробовать? Вы сделаете это, добавив распознаватель жестов касания, чтобы воспроизводить звуковой эффект при касании любого из представлений изображения.

Для воспроизведения звука вам потребуется доступ к AVFoundation . Вверху ViewController.swift , доб .:

 импортировать AVFoundation 

Добавьте следующие изменения в ViewController.swift , непосредственно перед viewDidLoad () :

 частный var chompPlayer: AVAudioPlayer? func createPlayer (от имени файла: String) -> AVAudioPlayer? { охранник let url = Bundle.main.url ( forResource: имя файла, withExtension: "кафе" ) else { вернуть ноль } var player = AVAudioPlayer () делать { попробуйте player = AVAudioPlayer (contentsOf: url) игрок.prepareToPlay () } улов { print ("Ошибка загрузки \ (url.absoluteString): \ (error)") } вернуть игрока } 

Добавьте следующий код в конец viewDidLoad () :

 // 1 let imageViews = view.subviews.filter { $ 0 - это UIImageView } // 2 для imageView в imageViews { // 3 пусть tapGesture = UITapGestureRecognizer ( цель: я, действие: #selector (handleTap) ) // 4 TapGesture.делегат = сам imageView.addGestureRecognizer (TapGesture) // ЗАДАЧА: также добавить пользовательский распознаватель жестов } chompPlayer = createPlayer (от: "chomp") 

Начальный проект содержит handleTap (_ :) . Добавьте в этот метод следующее:

 chompPlayer? .play () 

Код воспроизведения звука выходит за рамки этого руководства, но если вы хотите узнать больше, посетите наш курс AVFoundation. Важная часть находится в viewDidLoad () :

  1. Создайте массив изображений - в данном случае обезьяну и банан.
  2. Циклический переход по массиву.
  3. Создайте UITapGestureRecognizer для каждого представления изображения, указав обратный вызов. Это альтернативный способ добавления распознавателей жестов. Ранее вы добавляли распознаватели в раскадровку.
  4. Задайте делегата распознавателя программно и добавьте распознаватель в представление изображения.

Вот и все! Строй и беги. Теперь вы можете нажимать на изображения для получения звукового эффекта!

Установка зависимостей UIGestureRecognizer

Все работает неплохо, за исключением одного небольшого неудобства.Очень легкое перетаскивание объекта приводит к его панорамированию и воспроизведению звукового эффекта. Вы действительно хотите, чтобы звуковой эффект воспроизводился только при нажатии на объект, а не при его панорамировании.

Чтобы решить эту проблему, вы можете удалить или изменить обратный вызов делегата, чтобы он вел себя по-другому, когда касание и щипок совпадают. Но есть еще один подход, который вы можете использовать с распознавателями жестов: установка зависимостей.

Вы можете вызвать метод под названием require (toFail :) на распознавателе жестов. Вы можете догадаться, что он делает? ;]

Открыть Main.раскадровка и другой редактор справа, нажав кнопку в правом верхнем углу панели раскадровки.

Слева от только что открытой панели нажмите кнопку с четырьмя квадратами. Наконец, выберите третий элемент из списка, Automatic , который обеспечит отображение ViewController.swift там.

Now Удерживая нажатой клавишу Control, перетащите из распознавателя жестов панорамирования обезьяны под объявление класса и подключите его к выходу с именем monkeyPan .Повторите это для распознавателя жестов банановой сковороды, но назовите розетку bananaPan .

Убедитесь, что вы добавляете правильные имена к распознавателям, чтобы не перепутать их! Вы можете проверить это в инспекторе Connections .

Затем добавьте эти две строки в viewDidLoad () , прямо перед TODO :

 tapGesture.require (toFail: monkeyPan) tapGesture.require (toFail: bananaPan) 

Теперь приложение будет вызывать распознаватель жестов касания только в том случае, если оно не обнаруживает панорамирование.Довольно круто, а?

Создание пользовательских UIGestureRecognizers

На данный момент вы знаете почти все, что вам нужно знать, чтобы использовать встроенные средства распознавания жестов в своих приложениях. Но что, если вы хотите обнаружить какой-то жест, который не поддерживается встроенными распознавателями?

Ну, всегда можно написать свое! Например, что, если вы хотите обнаружить «щекотку», когда пользователь несколько раз быстро перемещает объект влево и вправо? Готовы это сделать?

«Пощекотать» обезьяну

Создайте новый файл с помощью File ▸ New File… и выберите шаблон iOS ▸ Source ▸ Swift File .Назовите файл TickleGestureRecognizer .

Затем замените оператор import в TickleGestureRecognizer.swift следующим:

 импорт UIKit class TickleGestureRecognizer: UIGestureRecognizer { // 1 private let requiredTickles = 2 частный let distanceForTickleGesture: CGFloat = 25 // 2 enum TickleDirection { случай неизвестен дело осталось дело право } // 3 частный var tickleCount = 0 частный var tickleStartLocation: CGPoint =.нуль частный var latestDirection: TickleDirection = .unknown } 

Вот что вы только что объявили, шаг за шагом:

  1. Константы, определяющие, что потребуется для этого жеста. Обратите внимание, что вы выводите requiredTickles как Int , но вам нужно указать distanceForTickleGesture как CGFloat . Если вы этого не сделаете, приложение определит его как Int , что вызовет трудности при вычислении с помощью CGPoint сек позже.
  2. Возможные направления щекотки.
  3. Три свойства для отслеживания этого жеста, а именно:
    • tickleCount : Сколько раз пользователь меняет направление жеста, перемещая при этом минимальное количество точек. Если пользователь трижды меняет направление жеста, это считается жестом щекотки.
    • tickleStartLocation : Точка, в которой пользователь начал движение в этом щекотке. Вы будете обновлять это каждый раз, когда пользователь меняет направление, перемещая при этом минимальное количество точек.
    • latestDirection : Последнее направление движения пальца, которое начинается как неизвестное. После того, как пользователь переместит минимальную величину, вы проверите, пошел ли жест влево или вправо, и обновите его соответствующим образом.

Конечно, эти свойства относятся к жесту, который вы здесь определяете. Вы создадите свой собственный, если будете делать распознаватель для другого типа жеста.

Управление состоянием жеста

Одна из вещей, которую вы измените, - это состояние жеста.Когда щекотание завершится, вы измените состояние жеста на закончилось .

Переключитесь на TickleGestureRecognizer.swift и добавьте в класс следующие методы:

 override func reset () { tickleCount = 0 latestDirection = .unknown tickleStartLocation = .zero if state == .possible { состояние = .failed } } переопределить func touchesBegan (_ touches: Set , с событием: UIEvent) { охранник пусть трогает = трогает.first else { возвращение } tickleStartLocation = touch.location (in: view) } переопределить func touchesMoved (_ touches: Set , с событием: UIEvent) { guard let touch = touches.first else { возвращение } пусть tickleLocation = touch.location (in: view) пусть horizontalDifference = tickleLocation.x - tickleStartLocation.x if abs (horizontalDifference)  requiredTickles { состояние =. завершено } } } переопределить func touchesEnded (_ touches: Set , с событием: UIEvent) { сброс() } override func touchesCancelled (_ touches: Set , с событием: UIEvent) { сброс() } 

Здесь много кода, и вам не нужно знать подробности для этого руководства.

Чтобы дать вам общее представление о том, как это работает, вы переопределяете UIGestureRecognizer reset () , touchesBegan (_: with :) , touchesMoved (_: with :) , touchEnded (_: with :) и touchesCancelled (_: with :) методы. И вы пишете собственный код, чтобы смотреть на прикосновения и определять жест.

Как только вы нашли жест, вы захотите отправить обновления методу обратного вызова. Это можно сделать, изменив свойство state распознавателя жестов.

Как только жест начинается, вы обычно устанавливаете состояние .began . После этого вы будете отправлять любые обновления с .changed и завершать его с .ended .

Для этого простого распознавателя жестов, когда пользователь щекотал объект, все. Вы просто отметите его как . Окончание .

Хорошо, теперь можно использовать этот новый распознаватель!

Реализация пользовательского распознавателя

Откройте ViewController.swift и внесите следующие изменения.

Добавьте следующий код в начало класса сразу после chompPlayer :

 частный вар смехPlayer: AVAudioPlayer? 

В viewDidLoad () добавьте распознаватель жестов в представление изображения, заменив TODO :

 пусть tickleGesture = TickleGestureRecognizer ( цель: я, действие: #selector (handleTickle) ) tickleGesture.delegate = self imageView.addGestureRecognizer (tickleGesture) 

В конце viewDidLoad () добавить:

 smilePlayer = createPlayer (от: "смеяться") 

Наконец, создайте новый метод в конце класса для обработки вашего жеста щекотки:

 @objc func handleTickle (_ gesture: TickleGestureRecognizer) { смеятьсяPlayer ?.играть() } 

Использовать этот пользовательский распознаватель жестов так же просто, как использовать встроенный!

Сборка и запуск. "Хе-хе, это щекотно!"

Куда идти дальше?

Загрузите завершенную версию проекта с помощью кнопки Загрузить материалы вверху или внизу этого руководства.

Поздравляю, теперь вы мастер распознавания жестов - как встроенных, так и настраиваемых! Сенсорное взаимодействие является такой важной частью устройств iOS, и UIGestureRecognizer является ключом к добавлению простых в использовании жестов помимо простых нажатий кнопок.

Надеюсь, вам понравился этот урок! Если у вас есть какие-либо вопросы или комментарии, присоединяйтесь к обсуждению ниже.

raywenderlich.com Еженедельно

Информационный бюллетень raywenderlich.com - это самый простой способ оставаться в курсе всего, что вам нужно знать как разработчику мобильных приложений.

Получайте еженедельный дайджест наших руководств и курсов, а в качестве бонуса получите бесплатный углубленный курс по электронной почте!

.

Смотрите также