Xamarin.iOS'iPad çoklu görev

iOS 9, slayt üzerinden veya bölünmüş görünüm kullanarak aynı anda çalışan iki uygulama destekler. Ayrıca resim içinde resim oynatan videoyu da destekler.

Bölünmüş EkranÖrneği ResimDeki Resim Örneği

iOS 9, belirli bir donanımda aynı anda iki uygulama çalıştırmaya yönelik çok görevli iPad ekler. Çoklu iPad aşağıdaki özelliklerle de destek sunar:

  • Slayt Üzerinden - Kullanıcının ikinci bir iOS uygulamasını geçici olarak çalışan ana uygulamanın yaklaşık %25'ini kapsayan bir kayan panelde (dil yönüne göre ekranın sağ veya sol tarafında) çalıştırmaya olanak sağlar. Slayt Gösterisi yalnızca iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 veya iPad Mini 4 üzerinde kullanılabilir.
  • Bölünmüş Görünüm - Desteklenen iPad donanımlarında (yalnızca iPad Air 2, iPad Mini 4 ve iPad Pro), kullanıcı ikinci bir uygulama seçerek o anda çalışan uygulamayla bölünmüş ekran modunda yan yana çalıştırabilirsiniz. Kullanıcı, her uygulamanın kapladığı ana ekranın yüzdesini kontrol altında bulundurabilirsiniz.
  • Resimdeki Resim - Video içeriğini kayıttan yürüten uygulamalar için, video artık iOS cihazında çalışan diğer uygulamalar üzerinde kayan, taşınabilir ve yeniden boyutlandırılabilir bir pencerede oynatılabilir. Kullanıcı bu pencerenin boyutu ve konumu üzerinde tam denetime sahip olur. Resimdeki Resim yalnızca iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 veya iPad Mini 4'te kullanılabilir.

Uygulamanıza birden çok görev desteği sağlarken dikkate alamanız gereken birkaç şeyvardır:

Bir uygulama geliştiricisi olarak, PIP Video Kayıttan Yürütmeyi devredışı bırakmak da dahil olmak üzere çoklu görev yürütmeyi geri 3.

Bu makalede, Xamarin.iOS uygulamanın çok görevli bir ortamda doğru şekilde çalıştırıla olduğundan emin olmak veya uygulamanıza uygun bir şey yoksa çoklu görev almayı geri almak için gereken adımlar yer amaktadır.

Çoklu görev iPad video

Çoklu Görev Hızlı Başlangıç

Slayt Gösterisi veya Bölünmüş Görünüm'leri desteklemek için, uygulamanın şunları yapmaları gerekir:

  • iOS 9 (veya daha büyük) üzerinde yerleşik olarak.
  • Görüntü varlıkları için değil, Başlatma Ekranı için görsel görseli kullanın.
  • Kullanıcı arabirimi için OtomatikLayout ve Boyut Sınıfları ile Bir Storyboard kullanın.
  • 4 iOS cihaz yönünün (Dikey, Baş Aşağı Dikey, Yatay Sol Yatay Sağ) & hepsini destekler.

IPad için Çoklu Görev IPad

iOS 9, IPad'de Slayt, Bölünmüş Görünüm (iPad Air 2, iPad Mini 4 ve iPad Pro) ve Resim'intanıtıla birlikte yeni çoklu görev özellikleri sunar. Aşağıdaki bölümlerde bu özelliklere daha yakından göz atalım.

Kaydırarak Geçiş

Slayt Gösterisi özelliği, kullanıcının ikinci bir uygulama seçmesini ve hızlı etkileşim sağlamak için bunu küçük bir kayan panelde görüntülemesini sağlar. Slayt Gösterisi paneli geçicidir ve kullanıcı ana uygulamayla yeniden çalışmaya geri geldiğinde kapanır.

Kaydırarak Kaydırma paneli

Anımsanacak asıl şey, kullanıcının hangi iki uygulamanın yan yana çalıştıracak olduğuna karar vermesi ve geliştiricinin bu işlem üzerinde hiçbir denetimi olmadığının olmasıdır. Sonuç olarak, Xamarin.iOS uygulamanın Bir Slayt Paneli'nde doğru şekilde çalıştırıla olduğundan emin olmak için birkaç şey gerekir:

  • OtomatikLayout ve Boyut Sınıfları'nı kullanma — Xamarin.iOS uygulamanız artık slayttan dışarı doğru yan panelde çalıştırılana kadar, kullanıcı arabiriminizi düzende kullanmak için artık cihaza, ekran boyutuna veya yönüne güvenebilirsiniz. Uygulamanın arabirimini doğru ölçeklendirenin emin olmak için OtomatikLayout ve Boyut Sınıflarını kullansanız iyi olur. Daha fazla bilgi için Birleşik Storyboard'lara Giriş belgelerimize bakın.
  • Kaynakları Verimli Bir Şekilde Kullanma — Artık uygulamanız sistemi çalışan başka bir uygulamayla paylaşayana kadar, uygulamanın sistem kaynaklarını verimli bir şekilde kullanması kritik öneme sahiptir. Bellek seyrek hale geldiğinde sistem en fazla bellek tüketen uygulamayı otomatik olarak sonlandırılır. Diğer ayrıntılar için bkz. Apple'ın iOS Uygulamaları için Enerji Verimliliği Kılavuzu.

Slayt Gösterisi yalnızca iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 veya iPad Mini 4 üzerinde kullanılabilir. Uygulamalarınızı Slayt Üzerinden hazırlama hakkında daha fazla bilgi edinmek için lütfen Apple'ın Çok GörevLi Geliştirmeleri Benimseme belgelerinde iPad bakın.

Bölünmüş Görünüm

Desteklenen iPad donanımlarda (yalnızca Air 2 iPad iPad Mini 4 ve iPad Pro), kullanıcı ikinci bir uygulama seçerek o anda çalışan uygulamayla bölünmüş ekran modunda yan yana çalıştırabilirsiniz. Kullanıcı, ekran üzerinde bir bölücü sürükleyerek her uygulamanın kapladığı ana ekranın yüzdesini kontrol ediyor olabilir.

Bölünmüş Görünüm

Slayt Gösterisi'ne benzer şekilde, kullanıcı hangi iki uygulamanın yan yana çalıştıracak olduğuna karar verir ve geliştiricinin bu işlem üzerinde hiçbir denetimi yoktur. Sonuç olarak Bölünmüş Görünüm, Xamarin.iOS uygulamasına benzer gereksinimlere sahiptir:

  • OtomatikLayout ve Boyut Sınıflarını kullan — Xamarin.iOS uygulamanız artık kullanıcının belirtilen boyutunda bölünmüş ekran modunda çalıştırılayana kadar, kullanıcı arabiriminizi düzen için cihaza, ekran boyutuna veya yönlendirmeye dayanamazsınız. Uygulamanın arabirimini doğru ölçeklendirenin emin olmak için OtomatikLayout ve Boyut Sınıflarını kullansanız iyi olur. Daha fazla bilgi için Birleşik Storyboard'lara Giriş belgelerimize bakın.
  • Kaynakları Verimli Bir Şekilde Kullanma — Artık uygulamanız sistemi çalışan başka bir uygulamayla paylaşayana kadar, uygulamanın sistem kaynaklarını verimli bir şekilde kullanması kritik öneme sahiptir. Bellek seyrek hale geldiğinde sistem en fazla bellek tüketen uygulamayı otomatik olarak sonlandırılır. Diğer ayrıntılar için bkz. Apple'ın iOS Uygulamaları için Enerji Verimliliği Kılavuzu.

Uygulamanızı Bölünmüş Görünüme hazırlama hakkında daha fazla bilgi edinmek için lütfen Apple'ın Çok GörevLi Geliştirmeleri Benimseme belgelerinde iPad bakın.

Resimdeki Resim

Yeni Resimdeki Resim özelliği (PIPolarak da bilinir) kullanıcının, kullanıcının ekranda çalışan diğer uygulamaların üzerinde herhangi bir yere konumlandırarak küçük, kayan bir pencerede video izlemelerini sağlar.

Resim kayan penceresinde örnek resim

Slayt Gösterisi ve Bölünmüş Görünüm'de olduğu gibi, kullanıcı Resim modunda bir videoyu izleme üzerinde tam denetime sahiptir. Uygulamanın ana işlevi video izlemekse PIP modunda doğru şekilde davranması için bazı değişiklikler yapılması gerekir. Aksi takdirde, PIP'i desteklemek için herhangi bir değişiklik gerekmez.

Uygulamanıza kullanıcının isteği üzerine PIP videosu görüntüleyişini için AVKit veya AV Foundation API'lerini kullanıyor olması gerekir. Media Player çerçevesi iOS 9'da kullanım dışıdır ve PIP'i desteklemez.

Resimdeki Resim yalnızca iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 veya iPad Mini 4'te kullanılabilir. Daha fazla bilgi için lütfen PictureInPicture Örnek Uygulamamıza ve Resimdeki Apple Resmi hızlı başlangıç bakın.

Uygulamanıza Çoklu Görev Uygulamayı Destekleme

Mevcut tüm Xamarin.iOS uygulamaları için, uygulamanız Zaten Apple'ın tasarım kılavuzlarına ve iOS 8 için en iyi yöntemlere uygun olduğu sürece çoklu görevi desteklemek saydam bir görevdir. Bu, uygulamanın kendi Kullanıcı Arabirimi düzenleri için OtomatikLayout ve Boyut Sınıfları ile birlikte storyboard'ları kullanması gerektiği anlamına gelir (daha fazla bilgi için Birleşik Storyboard'lara Giriş sayfamıza bakın).

Bu uygulamalar için çok az değişiklik yapmak veya bu görev için çok az değişiklik yapmak ve bu uygulamanın içinde iyi davranmak gerekir. Uygulama kullanıcı arabirimi, C# kodunda kullanıcı arabirimi öğelerini doğrudan konumlandırma ve boyutlandırma gibi diğer yöntemler kullanılarak oluşturulduysa veya belirli cihaz ekranı boyutlarına veya yönlendirmelere bağlıysa, iOS 9 çoklu görevlerini doğru şekilde desteklemek için önemli değişiklikler yapılması gerekir.

Yeni Xamarin.iOS uygulamasında iOS 9 çoklu görev kullanımını desteklemek için, uygulamanın tüm Kullanıcı Arabirimi düzenleri için OtomatikLayout ve Boyut Sınıfları ile birlikte storyboard'ları yeniden kullanın ve aşağıdaki bölümlerde verilen yönergeleri uygulayın.

Ekran Boyutu ve Yönlendirme ile Ilgili Dikkat Edilmesi Gerekenler

iOS 9'dan önce, uygulamalarınızı belirli cihaz ekran boyutlarına ve yönlendirmelerine göre tasarlayabilirsiniz. Bir uygulama artık Bir Slayt Gösterisi panelinde veya Bölünmüş Görünüm modunda çalıştırılayana sahip olduğundan, cihazın fiziksel yönü veya ekran boyutundan bağımsız olarak iPad üzerinde küçük veya normal bir yatay boyut sınıfında çalışıyor olabilir.

Ekran Boyutu ve Yönlendirme ile Ilgili Dikkat Edilmesi Gerekenler

Bir iPad tam ekran uygulamasında Normal yatay ve dikey Boyut Sınıfları vardır. iPhone 6 Plus ve iPhone 6s Plus'ın yanı sıra tüm iPhone'lar her iki yönde de Compact Size sınıflarını içerir. Yatay iPhone 6 Plus ve iPhone 6s Plus, Normal yatay Boyut Sınıfına ve Sıkıştırılmış dikey Boyut Sınıfına (iPad Mini gibi) sahiptir.

Slayt Gösterisi ve Bölünmüş Görünüm'leri destekleyen iPad'lerde aşağıdaki bileşimleri kullanabilirsiniz:

Yön Birincil Uygulama İkincil Uygulama
Dikey Ekranın %75'i
Yatay Sıkıştırma
Normal Dikey
Ekranın %25'i
Yatay Sıkıştırma
Normal Dikey
Yatay Ekranın %75'i
Normal Yatay
Normal Dikey
Ekranın %25'i
Yatay Sıkıştırma
Normal Dikey
Yatay Ekran %50
Yatay sıkıştır
Normal dikey
Ekran %50
Yatay sıkıştır
Normal dikey

örnek mulitask uygulamasında, yatay moddaki bir iPad tam ekran çalıştırırsanız, hem liste hem de ayrıntı görünümünü aynı anda sunar:

Aynı anda sunulan liste ve ayrıntı görünümü

Aynı uygulama panel üzerinde bir slayt üzerinde çalışıyorsa, Compact yatay boyut sınıfı olarak düzenlenir ve yalnızca listeyi görüntüler:

Yalnızca cihaz yataysa sunulan liste

Bu durumlarda uygulamanızın doğru şekilde davrandığından emin olmak için, nitelik koleksiyonlarını boyut sınıflarıyla birlikte benimsemeniz ve ve arabirimlerine uygun olması gerekir IUIContentContainerIUITraitEnvironment . Daha fazla bilgi için bkz. Apple 'ın Uıınıtcollection sınıfı başvurusu ve Birleşik görsel taslak kılavuzuna giriş.

Ayrıca, uygulamanın görünür alanını tanımlamak için cihazların ekran sınırlarını artık dayanabileceksiniz, bunun yerine uygulamanızın pencere sınırlarını kullanmanız gerekir. Pencere sınırları Kullanıcı denetimi altında olduğundan, bunları program aracılığıyla ayarlamanıza veya kullanıcının bu sınırları değiştirmesini önleyemez.

Son olarak, bir film şeridi dosyası kullanarak, bir .png resim dosyaları kümesi kullanmanın yanı sıra, bir slayt panelinde veya bölünmüş görünüm modunda çalıştırmak için kabul edilecek dört arabirim yönünden (dikey, ters dikey, yatay sol ve yatay sağ) bir görsel taslak dosyası kullanmanız gerekir.

Özel donanım klavye kısayolları

iPad çalışan iOS 9 ' da, Apple, donanım klavyeleri için destek içerir. ipad 'ler, Bluetooth ve bazı klavye üreticileri tarafından, sabit kablolu iOS 'a özgü anahtarlar içeren klavyeler tarafından oluşturulan temel harici klavye desteğini her zaman dahil edilmiştir.

Artık iOS 9 ile, uygulamalar kendi özel klavye kısayollarını oluşturabilir. Buna ek olarak, bazı temel klavye kısayolları komut-C (kopya), komut-X (kes), komut-V (Yapıştır) ve Komut-Shift-H (giriş) gibi bir uygulama tarafından özel olarak yazılmış bir uygulama olmadan kullanılabilir.

Komut sekmesi , kullanıcının Mac OS benzer şekilde klavyeden hızla uygulamalar arasında geçiş yapmasına olanak tanıyan bir uygulama değiştiricisi getirir:

Uygulama değiştiricisi

Bir iOS 9 uygulaması klavye kısayolları içeriyorsa, Kullanıcı komut, seçenek veya Denetim anahtarlarını bir açılan pencerede göstermek için kullanabilir:

Ekran görüntüsü, bir uygulamanın klavye kısayollarını gösterir.

Özel klavye kısayollarını tanımlama

Uygulamamızda bir görünüm veya görünüm denetleyicisine aşağıdaki kodu eklediğimiz zaman, bu görünüm veya denetleyici görünür olduğunda, özel bir klavye kısayolu kullanılabilir olacaktır:

#region Custom Keyboard Shortcut
public override bool CanBecomeFirstResponder {
    get { return true; }
}

public override UIKeyCommand[] KeyCommands {
    get {

        var keyCommand = UIKeyCommand.Create (new NSString("n"), UIKeyModifierFlags.Command, new Selector ("NewEntry"), new NSString("New Entry"));
        return new UIKeyCommand[]{ keyCommand };
    }
}

[Export("NewEntry")]
public void NewEntry() {

    // Add a new entry
    ...

}
#endregion

İlk olarak, özelliği geçersiz kıldık CanBecomeFirstResponder ve true görünüm ya da görünüm denetleyicisinin klavye girişi alabilmesi için döndürülür.

Sonra, özelliğini geçersiz kılar KeyCommands ve UIKeyCommandKeyCommands tuş vuruşu için yeni bir oluştur. Tuş vuruşu etkinleştirildiğinde, NewEntryExport istenen eylemi gerçekleştirmek için yöntemini (komutunu kullanarak iOS 9 ' da kullanıma sunduğumuz) çağırdık.

bu uygulamayı bir donanım klavyesi eklenmiş bir iPad çalıştırdığımızda ve kullanıcı komut-Nyazdığında, listeye yeni bir giriş eklenecektir. Kullanıcı komut anahtarında tutuyorsa, kısayollar listesi görüntülenir:

Ekran görüntüsü, bir uygulamanın yeni giriş kısayolunu gösterir.

Örnek bir uygulama için lütfen örnek Multitask uygulamasına bakın.

Kaynak yönetimi konuları

İOS 8 ' in tasarım kılavuzlarını ve en iyi uygulamaları kullanan uygulamalar için bile, etkili kaynak yönetimi sorun yaşamaya devam edebilir. İOS 9 ' da, uygulamaların artık bellek, CPU veya diğer sistem kaynaklarından özel olarak kullanımı yoktur.

Sonuç olarak, Xamarin. iOS uygulamanızı, sistem kaynaklarını etkin bir şekilde kullanmak için hassas bir şekilde ayarlamanız veya düşük bellek durumlarında sonlandırması gerekir. İkinci bir uygulama panel üzerinde bir slayttan veya daha fazla kaynak gerektiren bir resim penceresinde veya yenileme hızının bir saniyede 60 kare altına dönmesine neden olabileceğinden, bu işlem, çok görevli olan uygulamalara eşit olarak doğrudur.

Aşağıdaki kullanıcı eylemlerini ve bunların etkilerini göz önünde bulundurun:

  • Bir slayda metin girme -uygulamanıza metin girişi olmasa bile, sistem klavyesi artık kullanıcı arabiriminden görüntülenebilir. Sonuç olarak, uygulamanın klavye görüntüleme bildirimlerine (klavyeyi gösterme ve gizleme gibi) yanıt vermesi gerekebilir.
  • Bir slayt panelinde ikinci bir uygulamayı çalıştırma -yeni uygulama artık ön planda çalışıyor ve bellek ve CPU döngüleri gibi sistem kaynakları için mevcut uygulamayla rekabet ediyor.
  • Bir BEZAR penceresinde video oynatma -yalnızca bu pencere, uygulamanızın arabiriminin bir parçasını kapsamamaktadır, ancak videoyu başlatan uygulama arka planda çalışmaya devam eder ve CPU ve bellek kaynakları tüketiyor.

Uygulamanızın kaynakları verimli bir şekilde kullandığından emin olmak için aşağıdakileri yapmanız gerekir:

  • Uygulama , bellek sızıntılarını, fazla CPU kullanımını ve uygulamanın ana iş parçacığını engellediği yerleri kontrol edin.
  • Appdelegate. cs dosyanızdaki durum geçiş yöntemlerine yanıt verme ve uygulamanın arka planda girme veya döndürme gibi durum değiştirme yöntemlerine yanıt verme. Resimler, veriler veya görünümler ve görünüm denetleyicisi gibi gerekli olmayan varlıkları serbest bırakın.
  • yoğun bellek kullanan uygulamalarla yan yana Test edin-Haritalar (uydu görünümü modunda) gibi bellek kullanımı yoğun bir uygulamayla fiziksel iOS donanımında hem slayt çıkar hem de bölünmüş görünüm kullanarak uygulamanızı çalıştırın ve her iki uygulamanın da yanıt verdiğini ve kilitlenmemesini Test edin.

Kaynak yönetimi hakkında daha fazla bilgi için bkz. IOS uygulamaları Için Apple 'ın enerji verimliliği Kılavuzu .

Çoklu görev dışı

Apple tüm iOS 9 uygulamalarının çoklu işleri desteklemesini önerse de, tam ekranın düzgün çalışmasını gerektiren oyunlar veya kamera uygulamaları gibi bir uygulamanın çok özel nedenleri olabilir.

Xamarin. iOS uygulamanızın bir slayt çıkış panelinde veya bölünmüş görünüm modunda çalıştırılmayı devre dışı bırakmak için, projenin Info. plist dosyasını düzenleyin ve tam ekran gerekir:

Çoklu görev dışı

Önemli

Çok görevli dışında bir uygulama, uygulamanızın slayt dışına veya bölünmüş görünümde çalıştırılmasını engelliyorsa, başka bir uygulamanın slayttan veya resim videosunda bir resim ile birlikte görüntülenmesini engellemez.

PıP video oynatmayı devre dışı bırakma

Çoğu durumda, uygulamanız kullanıcının resim kayan penceresindeki bir resimde görüntülediği herhangi bir video içeriğini oynamasına izin vermelidir. Ancak, oyunun sahne videolarını kesme gibi bazı durumlarda bu işlem istenmeyebilir.

PıP video kayıttan yürütmeyi devre dışı bırakmak için uygulamanızda şunları yapın:

  • AVPlayerViewControllerVideosunu göstermek için kullanıyorsanız, AllowsPictureInPicturePlayback özelliğini olarak ayarlayın false .
  • AVPlayerLayerVideosunu göstermek için kullanıyorsanız, örneğini oluşturun AVPictureInPictureController .
  • WKWebViewVideosunu göstermek için kullanıyorsanız, AllowsPictureInPictureMediaPlayback özelliğini olarak ayarlayın false .

Özet

Bu makalede, bir Xamarin. iOS uygulamasının, iOS 9 ' un yeni çok görevli özelliği olan IPads 'de çalıştığından ve doğru şekilde davrandığından emin olmak için gereken adımlar ele alınmıştır. Bunlara ek olarak, uygun olmayan uygulamalar için çok görevli bir şekilde ele alınmıştır.