iOS 7’ye Giriş
Bu makalede, Görünüm Denetleyicisi geçişleri, UIView animasyonlarında yapılan geliştirmeler, UIKit Dynamics ve Metin Seti dahil olmak üzere iOS 7'de tanıtilen önemli yeni API'ler yer almaktadır. Ayrıca kullanıcı arabiriminde yapılan bazı değişiklikleri ve yeni çok görevli özellikleri kapsar.
iOS 7, iOS için önemli bir güncelleştirmedir. Uygulama chrome'u yerine içeriğe odaklanan tamamen yeni bir kullanıcı arabirimi tasarımı sunar. iOS 7, görsel değişikliklerinin yanı sıra daha zengin etkileşimler ve deneyimler oluşturmak için bir çok yeni API ekler. Bu belgede, iOS 7 ile tanıt kullanılan yeni teknolojiler yer almaktadır ve daha fazla keşif için başlangıç noktası olarak görev almaktadır.
UIView Animasyon Geliştirmeleri
iOS 7, UIKit'te animasyon desteğini artırarak uygulamaların daha önce gerekli olan şeyleri doğrudan Core Animation çerçevesine bırakmasına olanak sağlar. Örneğin, artık spring animasyonlarını ve daha önce bir için uygulanan ana kare UIViewCAKeyframeAnimation animasyonlarını CALayer gerçekleştirebilirsiniz.
Spring Animasyonları
UIView artık spring etkisiyle özellik değişikliklerine animasyonu animasyonu sızıyor. Bunu eklemek için, aşağıda açıklandığı gibi spring yaylama oranı ve ilk spring hızı değerlerini geçerek AnimateNotify veya AnimateNotifyAsync yöntemini çağırabilirsiniz:
springWithDampingRatio– 0 ile 1 arasında bir değer; burada salınım daha küçük bir değer için artar.initialSpringVelocity– Saniye başına toplam animasyon uzaklığı yüzdesi olarak ilk yay hızı.
Aşağıdaki kod, görüntü görünümünün merkezini değiştirirken bir spring etkisi üretir:
void AnimateWithSpring ()
{
float springDampingRatio = 0.25f;
float initialSpringVelocity = 1.0f;
UIView.AnimateNotify (3.0, 0.0, springDampingRatio, initialSpringVelocity, 0, () => {
imageView.Center = new CGPoint (imageView.Center.X, 400);
}, null);
}
Bu spring etkisi, aşağıda gösterildiği gibi görüntü görünümünün animasyonunu yeni bir orta konuma tamamlarken geri dönen gibi görünmesine neden olur:

Ana Kare Animasyonları
sınıfı UIView artık üzerinde ana kare AnimateWithKeyframes animasyonları oluşturmak için yöntemini UIView içerir. Bu yöntem diğer animasyon yöntemlerine benzer, ancak ana kareleri dahil etmek için bir parametre olarak UIViewNSAction ek bir geçiritir. içinde, NSAction anahtar çerçeveler çağrılarak UIView.AddKeyframeWithRelativeStartTime eklenir.
Örneğin, aşağıdaki kod parçacığı bir görünümün merkezine animasyon eklemenin yanı sıra görünümü döndürmek için bir ana kare animasyonu oluşturur:
void AnimateViewWithKeyframes ()
{
var initialTransform = imageView.Transform;
var initialCeneter = imageView.Center;
// can now use keyframes directly on UIView without needing to drop directly into Core Animation
UIView.AnimateKeyframes (2.0, 0, UIViewKeyframeAnimationOptions.Autoreverse, () => {
UIView.AddKeyframeWithRelativeStartTime (0.0, 0.5, () => {
imageView.Center = new CGPoint (200, 200);
});
UIView.AddKeyframeWithRelativeStartTime (0.5, 0.5, () => {
imageView.Transform = CGAffineTransform.MakeRotation ((float)Math.PI / 2);
});
}, (finished) => {
imageView.Center = initialCeneter;
imageView.Transform = initialTransform;
AnimateWithSpring ();
});
}
yöntemine yapılan ilk iki parametre, genel animasyon uzunluğunun yüzdesi olarak sırasıyla ana karenin başlangıç AddKeyframeWithRelativeStartTime saati ve süresini belirtir. Yukarıdaki örnek, görüntü görünümünün ilk saniye boyunca yeni merkezine animasyonlar döndürmesini ve ardından bir sonraki saniyeye 90 derece döndürmesini sağlar. Animasyon bir seçenek olarak UIViewKeyframeAnimationOptions.Autoreverse belirtilenden, her iki ana kare de ters yönde animasyona animasyon sağlar. Son olarak, son değerler tamamlama işleyicisinde başlangıç durumuna ayarlanır.
Aşağıdaki ekran görüntüleri, ana kareler aracılığıyla birleştirilmiş animasyonu gösterir:

UIKit Dynamics
UIKit Dynamics, uygulamaların fizik tabanlı animasyonlu etkileşimler oluşturmasına olanak sağlayan yeni bir UIKit API kümesidir. UIKit Dynamics bunu mümkün hale etmek için bir 2D fizik altyapısını kapsüller.
API doğası gereği bildirime sahiptir. Fizik etkileşimlerinin nasıl davranacağını, ağırlık, çakışmalar, yer çekimleri, yer çekimleri gibi fizik kavramlarını ifade etmek için davranış adı verilen nesneler oluşturarak bildirebilirsiniz. Ardından, davranışları dinamik animasyon adı verilen ve görünümü kapsüller adlı başka bir nesneye iliştirebilirsiniz. Dinamik animasyon, bildirilen fizik davranışlarını dinamik öğelere (örneğin, ) uygulayan öğelere uygulamakla UIView ilgilidir.
Karmaşık etkileşimleri tetiklemek için kullanılabilen birkaç farklı temel davranış vardır:
UIAttachmentBehavior– Birlikte hareket etmek için iki dinamik öğe ekler veya bir ek noktasına dinamik bir öğe ekler.UICollisionBehavior– Dinamik öğelerin çakışmalara katılmalarına izin verir.UIDynamicItemBehavior– Esneklik, yoğunluk ve sürtüşme gibi dinamik öğelere uygulanacak genel bir özellik kümesi belirtir.UIGravityBehavior- Dinamik bir öğeye ağırlık uygular ve öğelerin yayma yönünde hızlanmasına neden olur.UIPushBehavior– Dinamik öğeye zorla uygular.UISnapBehavior– Dinamik bir öğenin spring etkisi olan bir konuma yaslaymalarını sağlar.
Birçok temel öğe olsa da, UIKit Dynamics'i kullanarak görünüme fizik tabanlı etkileşimler ekleme işlemi davranış genelinde tutarlıdır:
- Dinamik bir animasyon oluşturun.
- Davranışları oluşturun.
- Dinamik animasyona davranış ekleme.
Dynamics Örneği
Bir örneğine ağırlık ve çakışma sınırı ekleyen bir örneğine UIView bakalım.
UIGravityBehavior
Bir görüntü görünümüne ağırlık ekleme, yukarıda özetlenen 3 adımı izler.
Bu örnek için ViewDidLoad yönteminde çalışacağız. İlk olarak, aşağıdaki UIImageView gibi bir örnek ekleyin:
image = UIImage.FromFile ("monkeys.jpg");
imageView = new UIImageView (new CGRect (new CGPoint (View.Center.X - image.Size.Width / 2, 0), image.Size)) {
Image = image
}
View.AddSubview (imageView);
Bu, ekranın üst kenarına ortalı bir görüntü görünümü oluşturur. Görüntüyü ağırlıkla "düşüş" yapmak için bir örneği UIDynamicAnimator oluşturun:
dynAnimator = new UIDynamicAnimator (this.View);
, ekli davranışlara göre animasyonlu olacak öğeleri içeren bir başvuru UIDynamicAnimatorUIView veya örneğini UICollectionViewLayout alır.
Ardından bir örnek UIGravityBehavior oluşturun. uygulayan bir veya daha fazla nesne IUIDynamicItem geçirebilirsiniz, UIView gibi:
var gravity = new UIGravityBehavior (dynItems);
Davranışa bir dizisi IUIDynamicItem geçirildi ve bu örnekte animasyona animasyonla UIImageView aktarıyor olan tek örneği içeriyor.
Son olarak, davranışı dinamik animasyona ekleyin:
dynAnimator.AddBehavior (gravity);
Bu, aşağıda gösterildiği gibi görüntünün ağırlık ile aşağı doğru animasyonu ile sonuç verir:


Ekranın sınırlarını kısıtacak hiçbir şey yoktur, görüntü görünümü yalnızca alttan düşer. Görünümü, görüntünün ekranın kenarlarıyla harmanlamaları için bir UICollisionBehavior ekleyebiliriz. Bunu bir sonraki bölümde işleyebilirsiniz.
UICollisionBehavior
İlk olarak, için olduğu gibi bir oluşturarak ve dinamik animasyona ekleyerek UICollisionBehaviorUIGravityBehavior başlayacağız.
Kodu, içerecek şekilde UICollisionBehavior değiştirme:
using (image = UIImage.FromFile ("monkeys.jpg")) {
imageView = new UIImageView (new CGRect (new CGPoint (View.Center.X - image.Size.Width / 2, 0), image.Size)) {
Image = image
};
View.AddSubview (imageView);
// 1. create the dynamic animator
dynAnimator = new UIDynamicAnimator (this.View);
// 2. create behavior(s)
var gravity = new UIGravityBehavior (imageView);
var collision = new UICollisionBehavior (imageView) {
TranslatesReferenceBoundsIntoBoundary = true
};
// 3. add behaviors(s) to the dynamic animator
dynAnimator.AddBehaviors (gravity, collision);
}
adlı UICollisionBehavior bir özelliği TranslatesReferenceBoundsIntoBoundry vardır. Bunu, true başvuru görünümünün sınırlarının bir çakışma sınırı olarak kullanılmaya neden olması için bunu ayarlama.
Şimdi, görüntü ağırlıkla aşağı doğru hareket edinca, ekranın alt kısmından biraz geri doğru hareket ediyor.
UIDynamicItemBehavior
Düşen görüntü görünümünün davranışını ek davranışlarla daha da kontrol altına ayacağız. Örneğin, esnekliği artırmak için bir ekleyebiliriz ve bu da ekranın alt kısmıyla birlikte geldiğinde görüntü görünümünün daha fazla geri UIDynamicItemBehavior sıçramasına neden olabilir.
ekleme, UIDynamicItemBehavior diğer davranışlarla aynı adımları izler. İlk olarak davranışı oluşturun:
var dynBehavior = new UIDynamicItemBehavior (dynItems) {
Elasticity = 0.7f
};
Ardından, davranışı dinamik animasyona ekleyin:
dynAnimator.AddBehavior (dynBehavior);
Bu davranış geçerli olduğunda, sınırla birlikte geldiğinde görüntü görünümü daha fazla geri geri dönen bir görünümdür.
Genel Kullanıcı Arabirimi Değişiklikleri
UiKit Dynamics, Denetleyici geçişleri ve yukarıda açıklanan gelişmiş UIView animasyonları gibi yeni UIKit API'lerine ek olarak, iOS 7'de kullanıcı arabiriminde çeşitli görsel değişiklikler ve çeşitli görünümler ve denetimler için ilgili API değişiklikleri tanıtıldı. Daha fazla bilgi için bkz. iOS 7 Kullanıcı Arabirimi Genel Bakış.
Metin Seti
Text Kit, güçlü metin düzeni ve işleme özellikleri sunan yeni bir API'dir. Alt düzey Temel Metin çerçevesinin üzerine inşa edilmiştir, ancak kullanımı Çekirdek Metin'e göre çok daha kolaydır.
Daha fazla bilgi için lütfen TextKit sayfamıza bakın
Çok görevli
iOS 7, arka plan çalışması ne zaman ve nasıl gerçekleştirileceklerini değiştirir. iOS 7'de görev tamamlama, görevler arka planda çalıştırılana kadar uygulamaları uykuda tutuyor ve uygulamalar bitişik olmayan bir şekilde arka plan işleme için uyandırıyor. iOS 7 ayrıca arka planda yeni içerikle uygulamaları güncelleştirmek için üç yeni API ekler:
- Arka Plan Getirme – Uygulamaların düzenli aralıklarla arka planda içeriği güncelleştirmesini sağlar.
- Uzaktan Bildirimler - Uygulamaların anında bildirim alırken içeriği güncelleştirmesini sağlar. Bildirimler sessiz olabilir veya kilit ekranında bir başlık gösterebilirsiniz.
- Arka Plan Aktarım Hizmeti – Sabit bir süre sınırı olmadan büyük dosyalar gibi verilerin karşıya yük devrederek ve indirerek sağlar.
Yeni çoklu görev özellikleri hakkında daha fazla ayrıntı için Xamarin Arka Plan Kılavuzu'nın iOS bölümlerine bakın.
Özet
Bu makale, iOS'a yapılan birçok önemli yeni eklemeyi kapsar. İlk olarak, Görünüm Denetleyicilerine özel geçişler ekleme adımlarını gösterir. Ardından, hem bir gezinti denetleyicisinin içinde hem de koleksiyon görünümleri arasında etkileşimli olarak koleksiyon görünümlerde geçişlerin nasıl kullanılacazı gösterir. Daha sonra, UIView animasyonlarında yapılan çeşitli geliştirmeler sunarak uygulamaların daha önce doğrudan çekirdek animasyonuna karşı programlanması gereken şeyler için UIKit 'i nasıl kullandığını gösterir. Son olarak, bir fizik altyapısını UIKit 'e getiren yeni Uıit Dynamics API 'SI, artık metin seti çerçevesinde bulunan zengin metin desteğiyle birlikte sunulmuştur.