В каком случае возможность прокрутки окна фрейма будет доступна всегда


Введение в HTML - тест 7

Главная / Программирование / Введение в HTML / Тест 7 Упражнение 1:
Номер 1
 С помощью какого контейнера задается фреймовая структура документа? 

Ответ:

&nbsp(1) FRAME &nbsp

&nbsp(2) BODY &nbsp

&nbsp(3) FRAMESET &nbsp

&nbsp(4) IFRAME &nbsp



Номер 2
 Допустимо ли следующее использование элемента FRAME? <HTML> <FRAME SRC="main.html"> <FRAMESET ROW="20%, *">  <FRAME SRC="frame1.html">  <FRAME SRC="frame2.html"> </FRAMESET> </HTML>

Ответ:

&nbsp(1) данный код соответствует стандартам HTML &nbsp

&nbsp(2) использовать данный код допустимо &nbsp

&nbsp(3) данный код не соответствует стандартам HTML &nbsp



Номер 3
 С помощью каких атрибутов тега FRAMESET возможно указать кадровую структуру фреймового документа? 

Ответ:

&nbsp(1) ROWS &nbsp

&nbsp(2) COLS &nbsp

&nbsp(3) COLSPAN &nbsp

&nbsp(4) ROWSPAN &nbsp



Упражнение 2:
Номер 1
 Какой пример кода определяет вывод вертикальных фреймов? 

Ответ:

&nbsp(1) <FRAMESET rows="25%, 75%"> &nbsp

&nbsp(2) <FRAMESET cols="40%, 50%"> &nbsp

&nbsp(3) <FRAMESET cols="25%, 75%"> &nbsp

&nbsp(4) <FRAMESET rows="35%, 65%"> &nbsp



Номер 2
 Какой пример кода определяет вывод горизонтальных фреймов? 

Ответ:

&nbsp(1) <FRAMESET cols="45%, 55%"> &nbsp

&nbsp(2) <FRAMESET rows="15%, 85%"> &nbsp

&nbsp(3) <FRAMESET rows="25%, 75%"> &nbsp

&nbsp(4) <FRAMESET cols="50%, 50%"> &nbsp



Номер 3
 Укажите вариант, в котором описано значение атрибута rows элемента FRAMESET по умолчанию: 

Ответ:

&nbsp(1) <FRAMESET rows="25%, 75%"> &nbsp

&nbsp(2) <FRAMESET rows="35%, 65%"> &nbsp

&nbsp(3) <FRAMESET rows="50%, 50%"> &nbsp

&nbsp(4) <FRAMESET rows="100%"> &nbsp



Упражнение 3:
Номер 1
 Укажите вариант, в котором описано значение атрибута cols элемента FRAMESET по умолчанию: 

Ответ:

&nbsp(1) <FRAMESET cols="50%, 50%"> &nbsp

&nbsp(2) <FRAMESET cols="100%"> &nbsp

&nbsp(3) <FRAMESET cols="15%, 85%"> &nbsp

&nbsp(4) <FRAMESET cols="35%, 65%"> &nbsp



Номер 2
 В каком примере FRAMESET делит экран на два горизонтальных фрейма? 

Ответ:

&nbsp(1) <FRAMESET rows="50%, 50%"> &nbsp

&nbsp(2) <FRAMESET cols="50%, 50%"> &nbsp

&nbsp(3) <FRAMESET cols="50%, *"> &nbsp

&nbsp(4) <FRAMESET rows="50%, *"> &nbsp



Номер 3
 В каком примере второй столбец = 250 пикселов, первый = 25% и третий = 75% от оставшегося пространства? 

Ответ:

&nbsp(1) <FRAMESET cols="1*,250,3*"> &nbsp

&nbsp(2) <FRAMESET cols="25,250,75"> &nbsp

&nbsp (3) <FRAMESET cols="1*,250,75"> &nbsp

&nbsp(4) <FRAMESET cols="25,250,3*"> &nbsp



Упражнение 4:
Номер 1
 В каких примерах определены таблицы фреймов из 2 строк и 3 столбцов? 

Ответ:

&nbsp(1) <FRAMESET rows="50%,50%" cols="50%,50%"> &nbsp

&nbsp(2) <FRAMESET rows="25%,65%,15%" cols="50%,50%"> &nbsp

&nbsp(3) <FRAMESET rows="25%,75%" cols="33%,34%,33%"> &nbsp

&nbsp(4) <FRAMESET rows="30%,70%" cols="33%,34%,33%"> &nbsp



Номер 2
 В каких примерах внешний FRAMESET делит доступное пространство на три столбца, а внутренний FRAMESET делит второй фрейм на два ряда неравной высоты? 

Ответ:

&nbsp(1) <FRAMESET cols="33%, 33%, 34%">...<FRAMESET rows="40%, 50%">...</FRAMESET>...</FRAMESET> &nbsp

&nbsp(2) <FRAMESET cols="33%, 33%, 34%">...<FRAMESET rows="30%, 20%">...</FRAMESET>...</FRAMESET> &nbsp

&nbsp(3) <FRAMESET cols="50%, 50%">...<FRAMESET rows="40%, 50%">...</FRAMESET>...</FRAMESET> &nbsp

&nbsp(4) <FRAMESET cols="45%, 55%">...<FRAMESET rows="10%, 20%">...</FRAMESET>...</FRAMESET> &nbsp



Упражнение 5:
Номер 3
 В каком случае возможность прокрутки окна фрейма будет доступна всегда? 

Ответ:

&nbsp(1) <FRAME scrolling="yes"> &nbsp

&nbsp(2) <FRAME scrolling="no"> &nbsp

&nbsp(3) <FRAME scrolling="auto"> &nbsp



Номер 4
 Какой атрибут элемента FRAME определяет ссылку на длинное описание фрейма? 

Ответ:

&nbsp(1) longdesc &nbsp

&nbsp(2) noresize &nbsp

&nbsp(3) name &nbsp



Упражнение 6:
Номер 1
 В каких случаях возможность прокрутки окна фрейма будет всегда недоступна? 

Ответ:

&nbsp(1) <FRAME scrolling="no"> &nbsp

&nbsp(2) <FRAME scrolling="auto"> &nbsp

&nbsp(3) <FRAME scrolling="yes"> &nbsp



Номер 2
 В каких случаях возможность прокрутки окна фрейма будет предоставляться при необходимости? 

Ответ:

&nbsp(1) <FRAME scrolling="auto"> &nbsp

&nbsp(2) <FRAME scrolling="yes"> &nbsp

&nbsp(3) <FRAME scrolling="no"> &nbsp



Номер 3
 При задании какого атрибута браузер будет рисовать разделитель между этим фреймом и каждым смежным фреймом? 

Ответ:

&nbsp(1) <FRAME frameborder="1"> &nbsp

&nbsp(2) <FRAME frameborder="0"> &nbsp

&nbsp(3) <FRAME border="1"> &nbsp



Упражнение 7:
Номер 1
 Для каких элементов может быть установлен атрибут target? 

Ответ:

&nbsp(1) <A> &nbsp

&nbsp(2) <IMG> &nbsp

&nbsp(3) <TABLE> &nbsp



Номер 2
 Какой атрибут определяет имя фрейма, в котором будет открыт документ? 

Ответ:

&nbsp(1) target &nbsp

&nbsp(2) title &nbsp

&nbsp(3) alt &nbsp

&nbsp(4) style &nbsp



Номер 3
 Установив какой атрибут, можно ссылаться на него как на "target" для ссылок, определенных в других элементах? 

Ответ:

&nbsp(1) id &nbsp

&nbsp(2) dir &nbsp

&nbsp(3) name &nbsp

&nbsp(4) link &nbsp



Учебное пособие по

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

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

UIScrollView - один из самых универсальных и полезных элементов управления в iOS. Это основа для очень популярного UITableView , и это отличный способ представить контент размером больше одного экрана.

В этом руководстве по UIScrollView вы создадите приложение, аналогичное приложению iOS Photos по умолчанию, и узнаете все о UIScrollView .Вы узнаете, как:

  • Используйте UIScrollView для увеличения и просмотра очень большого изображения.
  • Сохраняйте содержимое UIScrollView по центру при масштабировании.
  • Используйте UIScrollView для вертикальной прокрутки с автоматической компоновкой.
  • Запрещает клавиатуре скрывать компоненты ввода текста.
  • Используйте UIPageViewController , чтобы разрешить прокрутку нескольких страниц содержимого.

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

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

Используйте кнопку Загрузить материалы вверху или внизу этого руководства, чтобы загрузить стартовый проект, а затем откройте его в Xcode. Соберите и запустите с помощью симулятора iPhone 8, чтобы увидеть, с чего вы начинаете. Продолжайте использовать симулятор iPhone 8 до конца урока.

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

Что вам действительно нужно, так это подогнать изображение под экран устройства по умолчанию и увеличить его, чтобы увидеть детали, как это делает приложение Photos .

Можете починить? Да, ты можешь!

Прокрутка и масштабирование большого изображения

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

Откройте Main.storyboard и перетащите Scroll view из Object Library на схему документа , прямо под View в сцене Zoomed Photo View Controller . Затем переместите Image View внутрь недавно добавленного Scroll View . Схема вашего документа теперь должна выглядеть так:

Видите эту красную стрелку? Xcode жалуется, что ваши правила автоматического макета неверны.

Чтобы исправить их, выберите Scroll View и нажмите кнопку «Закрепить» в нижней части окна раскадровки. Добавьте четыре новых ограничения: верхнее, нижнее, ведущее и конечное. Установите для каждого ограничения константу 0 и снимите флажок Ограничение для полей . Результат должен выглядеть так:

Теперь выберите Image View и добавьте к нему те же четыре ограничения. Обязательно закрепите ограничения на Scroll View , а не на Frame Layout Guide , например:

Сборка и запуск.

Благодаря просмотру прокрутки теперь вы можете провести пальцем, чтобы увидеть полноразмерное изображение! Но что, если вы хотите увеличивать и уменьшать масштаб? Или что, если вы хотите, чтобы изображение было масштабировано по размеру экрана устройства?

Для таких случаев вам нужно будет написать код!

Панорамирование и масштабирование изображения

Откройте ZoomedPhotoViewController.swift и добавьте следующие выходы в объявление класса:

 @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var imageViewBottomConstraint: NSLayoutConstraint! @IBOutlet weak var imageViewLeadingConstraint: NSLayoutConstraint! @IBOutlet weak var imageViewTopConstraint: NSLayoutConstraint! @IBOutlet weak var imageViewTrailingConstraint: NSLayoutConstraint! 

Вернуться в Main.раскадровку , установите выход scrollView на Scroll View и установите делегат Scroll View на Контроллер просмотра увеличенных фотографий . Кроме того, соедините новые выходы ограничений с соответствующими ограничениями в схеме документа , например:

Вернитесь в ZoomedPhotoViewController.swift , добавьте в конец файла следующее:

 extension ZoomedPhotoViewController: UIScrollViewDelegate { func viewForZooming (в scrollView: UIScrollView) -> UIView? { вернуть imageView } } 

Это делает ZoomedPhotoViewController соответствующим UIScrollViewDelegate и реализует viewForZooming (в :) .Представление прокрутки вызывает этот метод, чтобы определить, какое из его подчиненных представлений масштабировать, когда пользователь зажимает изображение. Здесь вы указываете масштабировать imageView .

Установка масштаба

Затем добавьте следующее внутри класса сразу после viewDidLoad () :

 func updateMinZoomScaleForSize (_ size: CGSize) { пусть widthScale = size.width / imageView.bounds.width пусть heightScale = size.height / imageView.bounds.height пусть minScale = min (widthScale, heightScale) scrollView.minimumZoomScale = minScale scrollView.zoomScale = minScale } 

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

Чтобы получить минимальный масштаб масштабирования, вы сначала рассчитываете необходимое масштабирование, чтобы изображение плотно прилегало к просмотру прокрутки, исходя из его ширины.Затем вы рассчитываете то же самое для высоты. Вы берете минимум масштабов масштабирования по ширине и высоте и устанавливаете это значение как для minimumZoomScale , так и для zoomScale из scrollView .

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

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

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

 переопределить функцию viewWillLayoutSubviews () { super.viewWillLayoutSubviews () updateMinZoomScaleForSize (view.bounds.size) } 

Сборка и запуск; вы должны получить следующий результат:

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

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

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

Центрирование изображения

Еще в ZoomedPhotoViewController.swift , добавьте следующее внутри расширения класса сразу после viewForZooming (in :)

 // 1 func scrollViewDidZoom (_ scrollView: UIScrollView) { updateConstraintsForSize (просмотр.bounds.size) } // 2 func updateConstraintsForSize (_ size: CGSize) { // 3 пусть yOffset = max (0, (size.height - imageView.frame.height) / 2) imageViewTopConstraint.constant = yOffset imageViewBottomConstraint.constant = yOffset // 4 пусть xOffset = max (0, (size.width - imageView.frame.width) / 2) imageViewLeadingConstraint.constant = xOffset imageViewTrailingConstraint.constant = xOffset view.layoutIfNeeded () } 

Теперь пройдемся по этому шагу:

  1. Представление прокрутки вызывает scrollViewDidZoom (_ :) каждый раз, когда пользователь увеличивает масштаб.В ответ вы просто вызываете updateConstraintsForSize (_ :) и передаете размер границ представления.
  2. updateConstraintsForSize (_ :) обходит раздражение с UIScrollView : если размер содержимого представления прокрутки меньше его границ, он помещает содержимое в левый верхний угол экрана, а не в центр.
  3. Вы центрируете изображение по вертикали, вычитая высоту imageView из высоты вида и разделяя результат пополам.Это значение добавляет отступ к верхним и нижним ограничениям imageView .
  4. Точно так же вы вычисляете смещение для начальных и конечных ограничений imageView на основе ширины представления.

Похлопайте себя по плечу, затем соберите и запустите свой проект! Выберите изображение, и вы получите красивое центрированное изображение, которое можно масштабировать и панорамировать. :]

Вертикальная прокрутка

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

Примечание : Как правило, автоматическая компоновка считает верхний, левый, нижний и правый края вида видимыми краями. Однако UIScrollView прокручивает свое содержимое, изменяя источник его границ. Чтобы это работало с Auto Layout, края в представлении прокрутки фактически относятся к краям его представления Content.

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

Подробнее см. В этом техническом примечании от Apple.

Далее вы узнаете, как с помощью Auto Layout исправить ширину прокрутки, которая на самом деле является шириной его размера содержимого.

Прокрутка и автоматическая компоновка

Откройте Main.storyboard и выложите новую сцену.

Сначала добавьте новый View Controller . В инспекторе размера замените Fixed на Freeform для Simulated Size , затем введите ширину 340 и высоту 800 .

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

Снимите флажок Adjust Scroll View Insets в инспекторе Attributes для вновь созданного контроллера представления.

Добавьте Scroll view , который заполняет все пространство контроллера представления.

Добавьте ведущие и конечные ограничения с постоянными значениями 0 в контроллер представления. Обязательно снимите флажок Ограничить поля . Добавьте верхние и нижние ограничения из Scroll view к направляющим макета сверху и снизу соответственно. Они также должны иметь константы 0 .

Добавьте представление в качестве дочернего по отношению к представлению Scroll view и измените его размер, чтобы он соответствовал всему пространству представления Scroll .

Переименуйте раскадровку Label в Container View .Как и раньше, добавьте верхние, нижние, ведущие и конечные ограничения с константами 0 и снимите флажок Ограничение для полей . Опять же, обязательно закрепите ограничения на Scroll view , а не на Frame Layout Guide .

Чтобы исправить ошибки автоматического макета, необходимо указать размер представления контейнера. Вы хотите, чтобы он был такой же ширины, как вид прокрутки, поэтому прикрепите ограничение равной ширины из Container View к Scroll view .Для высоты просмотра контейнера определите ограничение высоты 500 .

Примечание : правила автоматического макета должны полностью определять размер содержимого для прокручиваемого представления . Это ключевой шаг для правильного определения размера прокрутки при использовании Auto Layout.

Добавьте вид Image View внутри Container View .

В инспекторе атрибутов укажите photo1 для изображения, выберите Aspect Fit для режима и отметьте Clip to Bounds .

Добавьте верхние, ведущие и конечные ограничения в Вид контейнера , как и раньше, и добавьте ограничение высоты 300 .

Добавление метки к изображению

Добавьте Label внутри Container View под изображением. Укажите текст ярлыка Какое название мне подходит больше всего? и добавьте горизонтальное ограничение по центру относительно Container View . Затем добавьте ограничение вертикального интервала 0 с UIImage .

Добавьте текстовое поле внутри Container View под новой меткой. Добавьте начальные и конечные ограничения в Container View с постоянными значениями 8 и без полей. Затем добавьте ограничение по вертикали 30 относительно метки.

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

Теперь вам нужно подключить переход к новому контроллеру View Controller .

Для этого сначала удалите существующий сегмент шоу между сценой Photo Scroll и сценой Zoomed Photo View Controller .Не волнуйтесь, вы добавите всю работу, которую вы проделали на Zoomed Photo View Controller , обратно в свое приложение позже.

В сцене Photo Scroll перетащите, удерживая клавишу Control, от PhotoCell к новому контроллеру представления и добавьте переход show . Сделайте идентификатор showPhotoPage .

Сборка и запуск.

Правильное отображение в любой ориентации

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

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

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

Прокрутка, чтобы увидеть больше

Перейдите в File ▸ New File… , выберите шаблон iOS ▸ Source ▸ Cocoa Touch Class и щелкните Next .Назовите класс PhotoCommentViewController и установите подкласс UIViewController . Убедитесь, что установлен язык Swift . Щелкните Next и сохраните его вместе с остальной частью проекта.

Теперь замените содержимое PhotoCommentViewController.swift этим кодом:

 импорт UIKit class PhotoCommentViewController: UIViewController { // 1 @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var scrollView: UIScrollView! @IBOutlet слабая переменная nameTextField: UITextField! // 2 var photoName: String? переопределить функцию viewDidLoad () { супер.viewDidLoad () // 3 если разрешить photoName = photoName { self.imageView.image = UIImage (имя: photoName) } } } 

Вот что делает этот код, шаг за шагом:

  1. Добавляет IBOutlet для элементов пользовательского интерфейса.
  2. Добавляет свойство photoName для представления имени представленного изображения.
  3. Устанавливает изображение на imageView , используя photoName .

Снова в раскадровке откройте Identity Inspector для View Controller и выберите PhotoCommentViewController для Class .Затем подключите IBOutlet s для просмотра прокрутки, просмотра изображений и текстового поля.

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

 override func prepare (для перехода: UIStoryboardSegue, отправитель: Any?) { если разрешить ячейку = отправитель как? UICollectionViewCell, пусть indexPath = collectionView? .indexPath (для: ячейки), пусть viewController = segue.destination как? PhotoCommentViewController { viewController.photoName = "фото \ (indexPath.row + 1)" } } 

Устанавливает имя фотографии, которое ваше приложение будет отображать в PhotoCommentViewController всякий раз, когда пользователь касается одной из фотографий.

Сборка и запуск.

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

Готовы исправить глюки?

Управление клавиатурой

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

Сделайте это, заставив PhotoCommentViewController наблюдать за объектами Notification клавиатуры, которые iOS отправляет всякий раз, когда клавиатура скрывается и отображается.

Для этого откройте PhotoCommentViewController.swift и добавьте следующие методы:

 // 1 func adjustInsetForKeyboardShow (_ show: Bool, notification: Notification) { охранять пусть userInfo = notification.userInfo, let keyboardFrame = userInfo [UIResponder.keyboardFrameEndUserInfoKey] как? NSValue else { возвращение } пусть AdjustHeight = (keyboardFrame.cgRectValue.height + 20) * (показать? 1: -1) scrollView.contentInset.bottom + = AdjustHeight scrollView.verticalScrollIndicatorInsets.bottom + = adjustHeight } // 2 @objc func keyboardWillShow (_ notification: Notification) { AdjustInsetForKeyboardShow (true, уведомление: уведомление) } @objc func keyboardWillHide (_ notification: Notification) { AdjustInsetForKeyboardShow (ложь, уведомление: уведомление) } 

Вот что вы делаете с этим кодом:

  1. В adjustInsetForKeyboardShow (_: notification :) вы извлекаете высоту клавиатуры из уведомления userInfo и соответственно устанавливаете вставки для прокрутки.
  2. Вы вызываете adjustInsetForKeyboardShow (_ :) , когда пользователь скрывает или показывает клавиатуру, указывая направление для перемещения представления прокрутки.

Далее необходимо настроить наблюдателей за изменениями клавиатуры. Добавьте следующий код внизу viewDidLoad () :

 NotificationCenter.default.addObserver ( я селектор: #selector (keyboardWillShow (_ :)), имя: UIResponder.keyboardWillShowNotification, объект: ноль) Центр уведомлений.default.addObserver ( я селектор: #selector (keyboardWillHide (_ :)), имя: UIResponder.keyboardWillHideNotification, объект: ноль) 

Отключение клавиатуры

Чтобы закрыть клавиатуру, добавьте этот метод в PhotoCommentViewController.swift :

 @IBAction func hideKeyboard (_ отправитель: AnyObject) { nameTextField.endEditing (истина) } 

Этот метод отменяет статус первого респондента текстового поля, которое, в свою очередь, закрывает клавиатуру.

Наконец, откройте Main.storyboard и перетащите Tap Gesture Recognizer на View в сцене Photo Comment View Controller . Затем подключите его к hideKeyboard (_ :) IBAction в PhotoCommentViewController .

Чтобы сделать его более удобным, клавиатура также должна отключаться, когда пользователь нажимает клавишу возврата. Щелкните правой кнопкой мыши nameTextField и подключите Primary Action Triggered с к hideKeyboard (_ :) .

Сборка и запуск.

Теперь перейдите к сцене Photo Comment View Controller . Коснитесь текстового поля, а затем коснитесь другого места в представлении. Клавиатура должна правильно отображаться и скрываться относительно другого содержимого на экране. Точно так же нажатие клавиши возврата делает то же самое.

Пейджинг с помощью UIPageViewController

В третьем разделе этого руководства по UIScrollView вы создадите представление прокрутки, которое позволяет листать страницы, то есть представление прокрутки блокируется на странице, когда вы прекращаете перетаскивание.Вы можете увидеть это в действии в приложении App Store при просмотре снимков экрана приложения.

Подготовка к работе

Перейдите к Main.storyboard и перетащите Page View Controller на холст. Откройте Identity Inspector и введите PageViewController для Storyboard ID .

В инспекторе атрибутов для стиля перехода по умолчанию установлено значение Page Curl . Измените его на Прокрутите и установите Page Spacing на 8 .

В Identity Inspector сцены Photo Comment View Controller укажите Storyboard ID из PhotoCommentViewController . Это позволяет вам обращаться к раскадровке из вашего кода.

Откройте PhotoCommentViewController.swift и добавьте это свойство после остальных:

 var photoIndex: Int! 

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

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

Теперь создайте новый файл с шаблоном iOS ▸ Source ▸ Cocoa Touch Class . Назовите класс ManagePageViewController и установите подкласс UIPageViewController .

Откройте ManagePageViewController.swift и замените содержимое файла следующим:

 импорт UIKit class ManagePageViewController: UIPageViewController { var photos = ["фото1", "фото2", "фото3", "фото4", "фото5"] var currentIndex: Int! переопределить функцию viewDidLoad () { супер.viewDidLoad () // 1 if let viewController = viewPhotoCommentController (currentIndex ?? 0) { пусть viewControllers = [viewController] // 2 setViewControllers (viewControllers, направление: вперед, анимированный: ложь, завершение: ноль) } } func viewPhotoCommentController (_ index: Int) -> PhotoCommentViewController? { охранять пусть раскадровка = раскадровка, пусть страница = раскадровка .instantiateViewController (withIdentifier: "PhotoCommentViewController") как? PhotoCommentViewController else { вернуть ноль } page.photoName = фотографии [индекс] page.photoIndex = index страница возврата } } 

Вот что делает этот код:

  1. viewPhotoCommentController (_ :) создает экземпляр PhotoCommentViewController через раскадровку. Вы передаете имя изображения в качестве параметра, чтобы отображаемый вид соответствовал изображению, которое вы выбрали на предыдущем экране.
  2. Вы настраиваете UIPageViewController , передавая ему массив, содержащий только что созданный вами единственный контроллер представления.

Теперь, когда вы позаботились об этом, вам нужно реализовать UIPageViewControllerDataSource . Добавьте в конец этого файла следующее расширение класса:

 extension ManagePageViewController: UIPageViewControllerDataSource { func pageViewController ( _ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { если разрешить viewController = viewController как? PhotoCommentViewController, пусть index = viewController.photoIndex, index> 0 { вернуть viewPhotoCommentController (индекс - 1) } вернуть ноль } func pageViewController ( _ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { если разрешить viewController = viewController как? PhotoCommentViewController, пусть index = viewController.photoIndex, (индекс + 1) <фото.count { вернуть viewPhotoCommentController (индекс + 1) } вернуть ноль } } 

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

Оба метода используют параметр viewController для указания отображаемого в данный момент контроллера представления.Используя photoIndex , он создает и возвращает новый контроллер.

Вам также необходимо установить dataSource . Добавьте в конец viewDidLoad () :

 dataSource = self 

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

Исправление работы вашего приложения

Вернитесь к Main.storyboard и выберите вновь созданную сцену Page View Controller Identity Inspector укажите ManagePageViewController для своего класса.

Удалите созданный ранее push segue showPhotoPage . Затем, удерживая нажатой клавишу «Control», перетащите из Photo Cell в Scroll View Controller на Manage Page View Controller Scene и выберите Show segue. В инспекторе атрибутов для перехода укажите его имя как showPhotoPage , как вы делали раньше.

Откройте CollectionViewController.swift и измените реализацию prepare (for: sender :) на следующее:

 override func prepare (для перехода: UIStoryboardSegue, отправитель: Any?) { если разрешить ячейку = отправитель как? UICollectionViewCell, пусть indexPath = collectionView? .indexPath (для: ячейки), пусть managePageViewController = segue.destination как? ManagePageViewController { managePageViewController.photos = фотографии managePageViewController.currentIndex = indexPath.ряд } } 

Сборка и запуск.

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

Отображение индикатора управления страницей

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

К счастью, UIPageViewController может автоматически предоставлять UIPageControl .

Для этого ваш UIPageViewController должен иметь стиль перехода UIPageViewControllerTransitionStyleScroll , и вы должны реализовать два специальных метода в UIPageViewControllerDataSource .

Вы ранее установили стиль перехода - отличная работа! Все, что вам нужно сделать сейчас, это добавить эти два метода в расширение UIPageViewControllerDataSource на ManagePageViewController :

 func presentationCount (для pageViewController: UIPageViewController) -> Int { вернуть photos.count } func presentationIndex (для pageViewController: UIPageViewController) -> Int { вернуть currentIndex ?? 0 } 

Вот что делает этот код:

  • В presentationCount (для :) вы указываете количество страниц, отображаемых в контроллере представления страниц.
  • В presentationIndex (для :) вы указываете контроллеру представления страницы, какую страницу он должен выбрать изначально.

После того, как вы внедрили необходимые методы делегата, вы можете добавить дополнительную настройку с помощью UIAppearance API.

Чтобы попробовать, перейдите по адресу AppDelegate.swift и замените application (_: didFinishLaunchingWithOptions :) следующим:

 приложение func ( _ приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Любой]?) -> Bool { пусть pageControl = UIPageControl.appearance () pageControl.pageIndicatorTintColor = UIColor.systemGray pageControl.currentPageIndicatorTintColor = UIColor.systemPurple вернуть истину } 

Это позволит настроить цвета UIPageControl .

Сборка и запуск.

Собираем все вместе

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

Откройте PhotoCommentViewController.swift и добавьте в конец класса следующее:

 // 1 @IBAction func openZoomingController (_ отправитель: AnyObject) { self.performSegue (withIdentifier: "масштабирование", отправитель: ноль) } // 2 override func prepare (для перехода: UIStoryboardSegue, отправитель: Any?) { если let id = segue.identifier, пусть viewController = segue.destination как? ZoomedPhotoViewController, id == "zooming" { viewController.photoName = photoName } } 

Взгляните на этот код, шаг за шагом:

  1. Действие для открытия представления масштабирования просто вызывает performSegue (withIdentifier: sender :) с идентификатором zooming segue.
  2. В prepare (for: sender :) вы отправляете значение photoName целевого контроллера в изображение, выбранное пользователем.

В Main.storyboard добавьте Show Detail segue от Photo Comment View Controller до Zoomed Photo View Controller .Выбрав новый сегмент, откройте Identity Inspector и установите Identifier на с масштабированием .

Выберите Image View в Photo Comment View Controller , откройте инспектор атрибутов и установите флажок User Interaction Enabled . Перетащите Tap Gesture Recognizer в окно просмотра изображений и подключите его к openZoomingController (_ :) .

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

Постройте и запустите еще раз.

Вы сделали это! Вы создали клон приложения iOS Photos. Вы можете выбирать и перемещаться по коллекции изображений, проводя пальцем по экрану, и вы можете масштабировать содержимое фотографии.

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

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

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

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

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

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

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

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

.

swift - В SwiftUI, где находятся управляющие события, то есть scrollViewDidScroll для обнаружения нижней части данных списка

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

iphone - Как проверить, отскакивает ли прокрутка?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
.Заметки о выпуске

Microsoft Edge для стабильного канала

  • 22 минуты на чтение

В этой статье

Эти примечания к выпуску содержат информацию о новых функциях и обновлениях, не связанных с безопасностью, которые включены в стабильный канал Microsoft Edge.Чтобы понять каналы Microsoft Edge, см. Обзор каналов Microsoft Edge. Здесь перечислены все обновления безопасности.

Версия 85.0.564.63: 23 сентября

Обновления безопасности перечислены здесь

Версия 85.0.564.51: 9 сентября

Обновления безопасности перечислены здесь

Версия 85.0.564.44: 31 августа

Исправлены различные ошибки и проблемы с производительностью.

Версия 85.0.564.41: 27 августа

Обновления безопасности перечислены здесь

Обновления функций

  • Локальная синхронизация избранного и настроек .Теперь вы синхронизируете избранное и настройки браузера между профилями Active Directory в вашей собственной среде без необходимости облачной синхронизации.

  • Поддержка групповой политики Microsoft Edge для надежного запуска комбинаций сайт + приложение без запроса подтверждения. . Добавлена ​​поддержка групповой политики, которая позволяет администраторам добавлять комбинации сайт + приложение, запуск которых можно доверять без запроса подтверждения. Это добавляет возможность администраторам настраивать комбинации доверенного протокола и источника (например, приложения Microsoft 365) для своих конечных пользователей, чтобы подавлять запрос подтверждения при переходе по URL-адресу, содержащему протокол приложения.

  • Инструмент выделения PDF . Этот инструмент можно добавить на панель инструментов PDF-файлов, чтобы легко выделить важный текст.

  • Доступен API доступа к хранилищу . API доступа к хранилищу позволяет получить доступ к собственному хранилищу в стороннем контексте, когда пользователь предоставил прямое намерение разрешить хранилище, которое в противном случае было бы заблокировано текущей конфигурацией браузера. Для получения дополнительной информации см. Storage Access API.

  • Отправить в OneNote доступно для коллекций Microsoft Edge .Все рады возможности отправлять информацию, собранную в Коллекциях, в OneNote, где они могут добавлять ее в более крупный проект и сотрудничать с другими! И что еще более важно, в Microsoft Edge 85 вы сможете отправлять контент в Office для Mac продуктов (Word, Excel и OneNote) как для MSA, так и для Azure Active Directory.

  • Обновления DevTools . Дополнительные сведения о следующих обновлениях см. В разделе Что нового в DevTools (Microsoft Edge 85).

    • Microsoft Edge DevTools поддерживает эмуляцию Surface Duo. Microsoft Edge DevTools может эмулировать Surface Duo, чтобы вы могли проверить, как ваш веб-контент будет выглядеть на устройствах с двумя экранами. Чтобы включить этот эксперимент в DevTools, войдите в режим устройства, нажав Ctrl + Shift + M в Windows или Command + Shift + M в macOS, а затем выберите Surface Duo в раскрывающемся списке устройств.
    • Microsoft Edge DevTools позволяет сопоставить сочетания клавиш с VS Code. Microsoft Edge DevTools поддерживает настройку сочетаний клавиш в DevTools в соответствии с вашим редактором / IDE.В Microsoft Edge 85 мы добавляем возможность сопоставления сочетаний клавиш DevTools с VS Code. Это изменение поможет повысить продуктивность VS Code и DevTools.

Обновления политики

Новые полисы

Добавлено тринадцать новых политик. Загрузите обновленные административные шаблоны с целевой страницы Microsoft Edge Enterprise. Были добавлены следующие новые политики.

Устаревшие политики

Версия 84.0.522.63: 20 августа

Обновления безопасности перечислены здесь.

Версия 84.0.522.61: 17 августа

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.59: 11 августа

Обновления безопасности перечислены здесь

Версия 84.0.522.58: 10 августа

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.52: 1 августа

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.50: 31 июля

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.49: 29 июля

Обновления безопасности перечислены здесь

Версия 84.0.522.48: 28 июля

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.44: 23 июля

Исправлены различные ошибки и проблемы с производительностью.

Версия 84.0.522.40: 16 июля

Обновления безопасности перечислены здесь

Обновления функций

  • Эта версия Microsoft Edge обеспечивает улучшенное время загрузки списка сайтов для режима Internet Explorer.Мы уменьшили задержку загрузки для списка сайтов в режиме Internet Explorer до 0 секунд (по сравнению с 60-секундным ожиданием) при отсутствии кэшированного списка сайтов. Мы также добавили поддержку групповой политики для случаев, когда переходы по домашней странице в режиме Internet Explorer должны быть отложены до загрузки списка сайтов. Дополнительные сведения см. В политике DelayNavigationsForInitialSiteListDownload.

  • Microsoft Edge теперь позволяет пользователям входить в браузер, когда он «работает от имени администратора» в Windows 10.Это поможет клиентам, использующим Microsoft Edge на сервере Windows или в сценариях удаленного рабочего стола и песочнице.

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

  • Улучшение онлайн-покупок. Добавляйте собственные псевдонимы к сохраненным дебетовым или кредитным картам. Теперь вы можете различать свои кредитные карты при совершении покупок в Интернете.Имя вашей дебетовой или кредитной карты позволяет вам выбрать правильную карту при использовании автозаполнения для выбора метода оплаты.

  • TLS / 1.0 и TLS / 1.1 по умолчанию отключены. Политика SSLVersionMin позволяет повторно включить TLS / 1.0 и TLS / 1.1. Эта политика будет оставаться доступной как минимум до версии Microsoft Edge 88. Дополнительные сведения см. В разделе Изменения, влияющие на совместимость сайта, поступающие в Microsoft Edge.

  • Коллекции улучшений:

    • Добавлена ​​возможность примечания, которая позволяет добавлять примечание или комментарий к элементу в коллекции.Заметки группируются и остаются прикрепленными к элементу, даже если вы сортируете элементы в коллекции. Чтобы попробовать эту новую функцию, щелкните элемент правой кнопкой мыши и выберите «Добавить примечание».
    • Вы можете изменить цвет фона заметок в коллекциях. Вы можете использовать цветовое кодирование, чтобы упорядочить информацию и повысить производительность.
    • Заметные улучшения производительности, что позволяет экспортировать коллекции в Excel за меньшее время, чем в предыдущих версиях Microsoft Edge.
  • Дополнительная поддержка Microsoft Edge API:

    • API доступа к хранилищу включен для экспериментов.Эта функция доступна для домашних и корпоративных пользователей, если для политики ExperimentationAndConfigurationServiceControl задано значение «Полная». Эта функция будет включена по умолчанию для всех пользователей в Microsoft Edge Stable Channel версии 85.

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

      API доступа к хранилищу позволяет получить доступ к собственному хранилищу в стороннем контексте, когда пользователь предоставляет прямое намерение разрешить хранилище, которое в противном случае было бы заблокировано текущей конфигурацией браузера. Для получения дополнительной информации см. Storage Access API.

    • API собственной файловой системы, что означает, что вы можете предоставить сайтам разрешения на редактирование файлов или папок через API собственной файловой системы.

  • PDF улучшений:

    • «Чтение вслух для PDF» позволяет пользователям прослушивать содержимое PDF-файла при выполнении других задач, которые могут быть важны для них.Это также помогает учащимся, изучающим аудиовизуальные материалы, сосредоточиться на чтении контента, облегчая обучение.
    • Улучшено редактирование PDF-файлов. Теперь вы можете сохранить изменения, внесенные в PDF-файл, обратно в файл вместо того, чтобы сохранять копию каждый раз, когда вы редактируете PDF-файл.
  • Microsoft Edge теперь включает перевод в иммерсивном читателе. Когда пользователь открывает представление Immersive Reader, он получает возможность перевести страницу на желаемый язык.

  • Несколько обновлений DevTools, включая поддержку настройки сочетаний клавиш в соответствии с VS Code и просмотр DevTools с высокой контрастностью.Дополнительные сведения см. В разделе Что нового в DevTools (Microsoft Edge 84).

Обновления политики

Новые полисы

Добавлено семь новых политик. Загрузите обновленные административные шаблоны с целевой страницы Microsoft Edge Enterprise. Были добавлены следующие новые политики.

Устаревшие полисы
Устаревшая политика

ForceNetworkInProcess - принудительный запуск сетевого кода в процессе браузера.

Версия 83.0.478.64: 13 июля

Исправлены различные ошибки и проблемы с производительностью.

Версия 83.0.478.61: 7 июля

Исправлены различные ошибки и проблемы с производительностью.

Версия 83.0.478.58: 30 июня

Исправлены различные ошибки и проблемы с производительностью.

Версия 83.0.478.56: 24 июня

Исправлены различные ошибки и проблемы с производительностью.

Обновления безопасности перечислены здесь

Версия 83.0.478.54: 17 июня

Обновления безопасности перечислены здесь

Версия 83.0.478.50: 15 июня

Исправлены различные ошибки и проблемы с производительностью.

Версия 83.0.478.45: 4 июня

Обновления безопасности перечислены здесь

Версия 83.0.478.44: 1 июня

Исправлены различные ошибки и проблемы с производительностью.

Версия 83.0.478.37: 21 мая

Обновления безопасности перечислены здесь

Обновления функций

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

  • Улучшения SmartScreen в Защитнике Microsoft: внесены несколько улучшений в службу SmartScreen в Защитнике Microsoft, например улучшена защита от вредоносных сайтов, которые перенаправляют при загрузке, и блокировка фреймов верхнего уровня, которая полностью заменяет вредоносные сайты страницей безопасности SmartScreen в Microsoft Defender.Блокировка кадров верхнего уровня предотвращает воспроизведение звука и других мультимедийных данных с вредоносного сайта, что упрощает и упрощает работу.

  • В ответ на отзывы пользователей пользователи теперь могут исключить автоматическую очистку определенных файлов cookie при закрытии браузера. Этот вариант полезен, если есть сайт, с которого пользователи не хотят выходить, но все же хотят, чтобы все остальные файлы cookie очищались при закрытии браузера. Чтобы использовать эту функцию, перейдите к edge: // settings / clearBrowsingDataOnClose и включите переключатель «Файлы cookie и другие данные сайта».

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

  • Улучшения в коллекциях:

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

  • Теперь доступна синхронизация расширений.Теперь вы можете синхронизировать свои расширения на всех своих устройствах! Расширения из магазинов Microsoft и Chrome будут синхронизироваться с Microsoft Edge. Чтобы использовать эту функцию: Щелкните многоточие () в строке меню, выберите Настройки . В разделе «Ваш профиль» щелкните Sync , чтобы просмотреть параметры синхронизации. В разделе «Профили / Синхронизация» используйте переключатель для включения расширений. Вы можете использовать групповую политику SyncTypesListDisabled, чтобы отключить синхронизацию расширений.

  • Улучшено сообщение на странице управления загрузками для незащищенных загрузок, которые были заблокированы.

  • Улучшений иммерсивного читателя:

    • Добавлена ​​поддержка наречий в частях речи в Immersive Reader. При чтении статьи в Immersive Reader откройте Инструменты грамматики и включите наречия в частях речи, чтобы выделить все наречия на странице.
    • Добавлена ​​возможность выбрать любой контент на веб-странице и открыть его в Immersive Reader. Эта возможность позволяет пользователям использовать Immersive Reader и все инструменты обучения, такие как Line Focus и Read Aloud, на всех веб-сайтах.
  • Link doctor обеспечивает исправление хоста и поисковый запрос для пользователей, когда они ошибочно вводят URL. Например:
    Пользователь ошибочно вводит "powerbi" как "powerbbi" .com. Link doctor предложит "powerbi" .com в качестве исправления и создаст ссылку для поиска "powerbbi" на случай, если пользователь ищет что-то другое.

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

  • Пользователи могут установить Microsoft Edge в качестве браузера по умолчанию непосредственно из Microsoft Edge Настройки . Это облегчает пользователям изменение браузера по умолчанию в контексте самого браузера, вместо того, чтобы искать в настройках операционной системы. Чтобы использовать эту функцию, перейдите к edge: // settings / defaultBrowser и щелкните Make default .

  • Несколько обновлений DevTools, включая новую поддержку удаленной отладки, улучшения пользовательского интерфейса и многое другое.Дополнительные сведения см. В разделе Что нового в DevTools (Microsoft Edge 83).

  • Теперь доступен сценарий предупреждения MCAS (Microsoft Cloud Access Security). Это позволяет администраторам настроить предупреждение, новую категорию блоков MCAS, в которой пользователь может переопределить страницу блокировки MCAS. Блоки MDATP E5 изначально интегрированы с блоками SmartScreen в Microsoft Edge для беспроблемной работы. Этот интерфейс позволяет использовать красный блок на всю страницу с сообщением «Этот веб-сайт заблокирован вашей организацией» вместо простого всплывающего уведомления.

  • Запретить синхронный запрос XmlHttpRequest при закрытии страницы. Отправка синхронных запросов XmlHttpRequests при выгрузке веб-страницы будет удалена. Это изменение улучшает производительность и надежность браузера, но может повлиять на веб-приложения, которые еще не были обновлены для использования более современных веб-API, включая sendBeacon и fetch. Групповая политика, позволяющая отключить это изменение и разрешить синхронный XHR во время закрытия страницы, будет доступна до Microsoft Edge 88. Дополнительные сведения см. В разделе Изменения, влияющие на совместимость сайта, поступающие в Microsoft Edge.

Обновления политики

Новые полисы

Добавлено 15 новых политик. Загрузите обновленные административные шаблоны с целевой страницы Microsoft Edge Enterprise. Были добавлены следующие новые политики.

Устаревшая политика

Следующая политика будет продолжать работать в этом выпуске. В будущем выпуске он станет «устаревшим».

EnableDomainActionsDownload Включить действия домена Скачать с Microsoft

Версия 81.0.416.77: 18 мая

Исправлены различные ошибки и проблемы с производительностью.

Версия 81.0.416.72: 7 мая

Обновления безопасности перечислены здесь

Версия 81.0.416.68: 29 апреля

Обновления безопасности перечислены здесь

Версия 81.0.416.64: 23 апреля

Обновления безопасности перечислены здесь

Версия 81.0.416.58: 17 апреля

Обновления безопасности перечислены здесь

Версия 81.0.416.53: 13 апреля

Обновления безопасности перечислены здесь

Обновления функций

  • Добавлена ​​поддержка Windows Information Protection (WIP), которая помогает предприятиям защищать конфиденциальные данные от несанкционированного раскрытия.Учить больше.

  • Коллекции уже доступны. Чтобы начать, щелкните значок Коллекции рядом с адресной строкой. Это действие открывает панель «Коллекции», где вы можете создавать, редактировать и просматривать коллекции. Мы создали Коллекции на основе того, что вы делаете в Интернете. Если вы покупатель, путешественник, учитель или студент, Коллекции могут вам помочь. Учить больше.

  • Разрешите удаление (Скрыть с панели инструментов) кнопки Коллекции с панели инструментов Microsoft Edge для единообразия.

  • Автоматический вход в локальную учетную запись Active Directory будет нацелен только на организации, которые его включили. Если пользователи уже вошли в локальную учетную запись AD, они смогут выйти из нее. Пользователи будут автоматически входить в систему с основной учетной записью в своей операционной системе, только если это учетная запись MSA или Azure AD. Администраторы могут включить автоматический вход с локальной учетной записью AD с помощью политики ConfigureOnPremisesAccountAutoSignIn.

  • Application Guard.Поддержка расширений теперь доступна в контейнере.

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

  • Обновлен инструмент 3D View в Microsoft Edge DevTools с добавлением новой функции, помогающей отлаживать контекст стекирования z-index. В 3D-представлении показано представление глубины DOM (объектной модели документа) с использованием цвета и наложения, а представление z-Index помогает вам изолировать различные контексты наложения на вашей странице.Учить больше.

  • Инструменты F12 Dev локализованы на 10 новых языков, поэтому они будут соответствовать языку, используемому в остальной части браузера. Учить больше.

  • Добавлена ​​поддержка воспроизведения Dolby Vision. В Windows 10 Build 17134 с поддержкой Dolby Vision (обновление за апрель 2018 г.) веб-сайты могут отображать контент Dolby Vision. Узнайте, как включить контент Dolby Vision из Netflix.

  • Microsoft Edge теперь может определять и удалять повторяющиеся избранные и объединять папки с одинаковыми именами.Чтобы получить доступ к инструменту, нажмите звездочку на панели инструментов браузера и выберите «Удалить повторяющиеся избранные». Вы можете подтвердить изменения, и любые обновления ваших избранных будут синхронизированы между устройствами.

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

  • Открывайте внешние ссылки в правильном профиле браузера.Выберите профиль по умолчанию для ссылок, открытых для внешних приложений, из edge: // settings / multiProfileSettings .

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

  • Если в вашей учетной записи Microsoft сохранены платежные карты, вы можете использовать их в Microsoft Edge при заполнении форм оплаты.Карты в вашей учетной записи Microsoft будут синхронизироваться между настольными устройствами, и полная информация будет предоставлена ​​веб-сайту после двухфакторной аутентификации (код CVC и ваша идентификационная информация Microsoft). Для большего удобства вы можете безопасно сохранить копию карты. на устройстве во время аутентификации.

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

  • Microsoft Edge теперь интегрирован с Windows Speller на платформах Windows 8.1 и выше. Эта интеграция обеспечивает большую языковую поддержку, доступ к большему количеству языковых словарей и возможность использования пользовательских словарей Windows. От пользователей не требуется никаких дополнительных действий, если язык был добавлен в языковые настройки ОС. Кроме того, в настройках Microsoft Edge включен переключатель языковой проверки орфографии.

  • Когда PDF-документы открываются с помощью Microsoft Edge, пользователи теперь могут создавать выделения, изменять цвет и удалять выделения. Эта функция помогает в дальнейшем ссылаться на важные части документа и для совместной работы.

  • При загрузке длинных PDF-документов, оптимизированных для работы в Интернете, страницы, просматриваемые пользователем, будут загружаться быстрее, параллельно, в то время как остальная часть документа загружается.

  • Теперь иммерсивное средство чтения для веб-сайтов стало проще запустить, просто нажав клавишу F9.

  • Теперь читать вслух стало проще с помощью сочетания клавиш (Ctrl + Shift + U).

  • Добавлен параметр командной строки MSI, который позволяет подавлять создание значков на рабочем столе при установке Microsoft Edge. В следующем примере показано, как использовать этот новый параметр:
    MicrosoftEdgeEnterpriseX64.msi DONOTCREATEDESKTOPSHORTCUT = true
    В следующем выпуске будет групповая политика для поддержки этой функции.

Обновления политики

Новые полисы

Добавлено 11 новых политик.Загрузите обновленные административные шаблоны с целевой страницы Microsoft Edge Enterprise. Были добавлены следующие новые политики.

Изменение названия политики и заголовка

Политика OmniboxMSBProviderEnabled изменена на AddressBarMicrosoftSearchInBingProviderEnabled - заголовок политики - «Включить поиск Microsoft в предложениях Bing в адресной строке».

Устаревшие полисы

Следующие политики продолжают работать в этом выпуске.Они станут «устаревшими» в будущем выпуске.

Решенные проблемы
  • Исправлена ​​проблема, из-за которой режим IE в Microsoft Edge приводил к отображению текущего диалогового окна загрузки даже после загрузки файла.
  • Исправлена ​​проблема, из-за которой Microsoft Edge удалял файлы cookie сеанса, когда страница, уже находящаяся в режиме IE, запускала открытие новой вкладки режима IE.

Версия 80.0.361.111: 7 апреля

Исправлены различные ошибки и проблемы с производительностью.

Версия 80.0.361.109: 1 апреля

Обновления безопасности перечислены здесь

Версия 80.0.361.69: 19 марта

Обновления безопасности перечислены здесь

Версия 80.0.361.66: 4 марта

Обновления безопасности перечислены здесь

Версия 80.0.361.62: 25 февраля

Обновления безопасности перечислены здесь

Версия 80.0.361.57: 20 февраля

Обновления безопасности перечислены здесь

Версия 80.0.361.56: 19 февраля

Исправлены различные ошибки и проблемы с производительностью.

Версия 80.0.361.54: 14 февраля

Решенные проблемы

  • Исправлена ​​ошибка, из-за которой пароль, оплата и файлы cookie не могли быть импортированы в Microsoft Edge.

Версия 80.0.361.50: 11 февраля

Исправлены различные ошибки и исправления производительности.

Версия 80.0.361.48: 7 февраля

Обновления безопасности перечислены здесь

Обновления функций

  • Добавлена ​​защита SmartScreen от загрузки потенциально нежелательных приложений.Узнать больше
  • Добавлена ​​поддержка воспроизведения Dolby Vision.
  • Позволяет пользователям Windows Mixed Reality просматривать видео в формате 360 ° на гарнитурах VR.
  • Добавлен параметр в режим чтения для увеличения интервала текста.
  • Добавлена ​​поддержка стирания ссылок с помощью ластика Surface Pen.
  • Добавлена ​​поддержка использования клавиш со стрелками и пробела для рисования на снимках экрана обратной связи в режиме редактора.
  • Повышена надежность снимков экрана, теперь они перестают отображаться черным цветом при отправке отзыва.
  • Добавлена ​​поддержка темных тем на локальную страницу новой вкладки, которая отображается, когда устройство не подключено к Интернету.
  • Добавлена ​​возможность восстановления веб-сайтов, установленных как приложения, при восстановлении сеанса браузера после обновления, сбоя и т. Д.
  • Добавлена ​​поддержка темных тем в пользовательский интерфейс PDF, когда браузер управляется групповой политикой.
  • Обновлен Adobe Flash до версии 32.0.0.321. Узнать больше

Обновления политики

Новые полисы

Добавлено 16 новых политик.Загрузите обновленные административные шаблоны с целевой страницы Microsoft Edge Enterprise. Были добавлены следующие новые политики.

Устаревшие полисы

Следующая политика устарела.

Решенные проблемы

  • Исправлена ​​ошибка, из-за которой звук не работал в среде Citrix.
  • Исправлена ​​проблема, из-за которой совместное использование Microsoft Edge и устаревшего Microsoft Edge приводило к неработающим устаревшим ссылкам и сбоям.

См. Также

.

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