Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
IOS 13 теперь поддерживает параллельные окна для того же приложения на iPad. Это обеспечивает новые возможности и взаимодействие перетаскивания между окнами. В этом документе показано, как настроить приложение для поддержки этой функции и ознакомиться с этими новыми функциями.
Конфигурация проекта
Чтобы настроить проект для нескольких окон, измените info.plistNSUserActivityTypes объявление о том, что приложение iOS будет обрабатывать действия этого типа, а UIApplicationSceneManifest также включить UIApplicationSupportsMultipleScenes для нескольких окон и UISceneConfigurations связать сцену с раскадровкой.
<key>NSUserActivityTypes</key>
<array>
<string>com.xamarin.Gallery.openDetail</string>
</array>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>
Открытие нескольких окон
При открытии и запуске приложения на iPad существует несколько способов открытия нескольких окон этого приложения, которые обрабатываются iOS по умолчанию.
- Предоставление приложения— коснитесь значка приложения в док-станции, чтобы ввести этот режим во время открытия приложения.
- Слайд сверху — перетащите значок приложения из док-станции в верхней части работающего приложения, чтобы иметь плавающее окно.
- Разделение экрана — перетащите значок приложения из док-станции на край экрана iPad, чтобы создать новое параллельное окно.
Дополнительные взаимодействия для входа в режим нескольких окон доступны в приложении.
Перетаскивание из приложения — используйте взаимодействие перетаскивания в приложении, чтобы запустить новый NSUserActivity , как перетаскивание значка приложения в предыдущих примерах.
При использовании взаимодействия перетаскивания вы создаете NSUserActivity и связываете данные, передаваемые вместе с новым окном, для открытия iOS.
public UIDragItem [] GetItemsForBeginningDragSession (UICollectionView collectionView, IUIDragSession session, NSIndexPath indexPath)
{
var selectedPhoto = GetPhoto (indexPath);
var userActivity = selectedPhoto.OpenDetailUserActivity ();
var itemProvider = new NSItemProvider (UIImage.FromFile (selectedPhoto.Name));
itemProvider.RegisterObject (userActivity, NSItemProviderRepresentationVisibility.All);
var dragItem = new UIDragItem (itemProvider) {
LocalObject = selectedPhoto
};
return new [] { dragItem };
}
В приведенном выше selectedPhoto коде объект модели имеет метод для возврата вызываемого OpenDetailUserActivity()NSUserActivity объекта. После завершения жеста перетаскивания отображается UIDragItemuserActivity с помощью NSItemProvider.
Явные действия — пользовательские жесты на кнопках или ссылках предлагают возможность открыть новое окно.
UIApplication С нового можно начать UISceneSession с помощью вызоваRequestSceneSessionActivation. Если существующая сцена уже существует, следует использовать это. По умолчанию для вас будет создана новая сцена.
public void ItemSelected(UICollectionView collectionView, NSIndexPath indexPath)
{
var userActivity = selectedPhoto.OpenDetailUserActivity ();
UIApplication.SharedApplication.RequestSceneSessionActivation(
sceneSession: null,
userActivity: userActivity,
options: null,
errorHandler: null
);
}
В этом примере единственным значением, передаваемым методу, userActivity является открытие нового окна приложения на основе явного действия пользователя; в данном случае ItemSelected обработчик объектаUICollectionView.RequestSceneSessionActivation