XİBs kullanma zamanı Film Şeridi ve ne zaman kullanılır | Netgez.com
SORU
22 ŞUBAT 2012, ÇARŞAMBA


XİBs kullanma zamanı Film Şeridi ve ne zaman kullanılır

İOS projesinde şeritleri kullanma ve XİBs ve kullanmak için herhangi bir talimat var mıdır? her artıları ve eksileri nelerdir ve durumlarla her takım ne?

Görünümü denetleyicileri dinamik UI elemanları tarafından itiliyor varsa film şeridi geçişlerini kullanmak o kadar da temiz değil bildiğim kadarıyla (göster iğne Gibi).

CEVAP
18 EKÄ°M 2013, Cuma


Güncelleme 4/24/2015: İlginçtir ki Apple bile açık kaynaklı son zamanlarda ResearchKit Peter Steinberger has noticed kendi gibi Şeritleri kullanmaz (alt başlık altında"") Interface Builder.

Güncelleme 6/10/2014: Beklendiği gibi, Apple iyileştirilmesi Şeritleri ve böyle büyük mükafat tutar. İOS 7 ve altına uygulanan bazı noktaları iOS 8 artık (ve şimdi özel olarak işaretlenmiştir) geçerli değil. Yani Şeritleri doğal olarak hala kusurları var ise, ben tavsiyemi gözden geçirinkullanmayıniçinmantıklı seçici kullanın.

İOS 7 çıktı bu şimdi, tavsiye ederimkarşıŞeritleri kullanmaya karar verirken dikkatli olun. İşte benim nedenlerim:

  • Film ÅŸeritlerini zamanında, derleme zamanı deÄŸil baÅŸarısız: GeçiÅŸ adına bir yazım hatası var ya film ÅŸeridi yanlış baÄŸlı? Zamanında darbe olacak. Artık film ÅŸeridi yok özel UÄ°ViewController bir alt kullanır mısın? Zamanında darbe olacak. Kod içinde böyle ÅŸeyler varsa, onları erken yakalamak olacak, derleme zamanı sırasında.Güncelleme: Benim yeni aracıStoryboardLintçoÄŸunlukla bu sorunu çözer.

  • Åžeritleri hızlı kafa karıştırıcı: Projeniz büyüdükçe, film ÅŸeridi giderek gezinmek için daha zor olur. Ayrıca, eÄŸer birden çok görünümü denetleyicileri birden fazla geçiÅŸlerini için birden çok görünüm kontrolörleri, film ÅŸeridi hızlı baÅŸlar gibi bakmak bir kase spagetti ve bulursun kendini yakınlaÅŸtırma ve kaydırma üzerinde yer bulmak görünümü denetleyicisi aradığını ve bulmak ne geçiÅŸ noktaları nerede.GüncellemeBu sorun çoÄŸunlukla Film Åžeridi this article by Pilky this article by Robert Brown açıklandığı gibi birden fazla Åžeritleri, bölme çözülebilir.

  • Åžeritleri bir takım olarak daha çok çalışıyoruz: Genellikle tek bir büyük film ÅŸeridi projeniz için dosya olduÄŸundan, birden çok geliÅŸtiriciler düzenli olarak bir dosyada deÄŸiÅŸiklik yapmak zorunda bir baÅŸ aÄŸrısı olabilir: birleÅŸtirilmiÅŸ DeÄŸiÅŸiklikler ve çatışmaların çözülmesi gerekir. Ne zaman bir çatışma oluÅŸur, sabit söyle nasıl çözmek: "Güncellemelerinden oluÅŸturduÄŸu film ÅŸeridi XML dosyası deÄŸildi gerçekten tasarlanmış golü aklı olan bir insan hiç okuma bırak düzenleme.

  • Åžeritleri kod yorumları zor ya da neredeyse imkansız hale getirmektedir: Akran kod yorumları takımda yapacak çok ÅŸey vardır. Bir film ÅŸeridi deÄŸiÅŸiklik yaptığınızda, ancak, hemen hemen imkansız farklı bir geliÅŸtirici ile bu deÄŸiÅŸiklikleri gözden geçirmek zorundayız. Yukarı çekebilirsin büyük bir XML dosyası bir fark vardır. Gerçekten ne deÄŸiÅŸti ve bu deÄŸiÅŸikliklerin doÄŸru olup olmadığını ya da eÄŸer bir ÅŸey kırdı eÄŸer deÅŸifre etmek gerçekten çok zor.

  • Åžeritleri kodu yeniden engel: Benim iOS projeleri, genellikle bir sınıf oluÅŸturun içeren tüm renkleri ve yazı tiplerini ve kenar boÅŸlukları ve parçalar kullanıyorum boyunca app vermek için tutarlı bir görünüm ve his: bir tek satır deÄŸiÅŸtirmek için ayarlamak hiç bu deÄŸerleri bütün bir uygulama. EÄŸer film ÅŸeridi gibi deÄŸerleri ayarlarsanız, onları çoÄŸaltmak ve onları deÄŸiÅŸtirmek istediÄŸinizde, her olay bulmak gerekir. Arama ÅŸansınız yok çünkü bir bayan, ve film ÅŸeritlerini deÄŸiÅŸtirme ihtimali yüksek.

  • Åžeritlerini her ÅŸeyi iki kere yapmak: Ä°Phone, iPad ve çalışan evrensel bir uygulama yapıyorsun? Åžeritleri kullandığınızda, genellikle iPad versiyonu için bir film ÅŸeridi ve iPhone sürümü için bir tane olacak. Senkronize iki tutmak size her UI yapmak gerekir veya uygulama iÅŸ akışı iki yerde deÄŸiÅŸtirin. Yay.GüncellemeVe böyle büyük mükafat iOS 8 iPhone ve iPad için tek bir Åžeridi kullanabilirsiniz 6,.

  • Film ÅŸeritleri sürekli içerik anahtarları gerektirir: Ve kod çok daha hızlı ÅŸeritleri daha kendimi çalışan navigasyon buluyorum. Uygulamanız ÅŸeritleri kullanır, sürekli içerik anahtarı: "Oh, bu tablo üzerine dokunun görünümü bir hücre farklı bir görünüm denetleyicisi yüklemek istiyorum. Ben ÅŸimdi açık film ÅŸeridi, saÄŸ görünümü denetleyicisi, yeni bir geçiÅŸ için baÅŸka bir görünüm denetleyicisi (ben de var), ver segue adını, unutma sakın (kullanamıyorum sabitler veya deÄŸiÅŸkenler ÅŸeritleri), geçiÅŸ yapmak için kod ve umarım sakın yanlış adı o aklıma geldi ÅŸimdi benim prepareForSegue yöntemi. Nasıl olduÄŸumu nereden tür kod bu 3 satır burada olmasını isterdim!" Hayır, eÄŸlenceli deÄŸil. Kod ve film ÅŸeridi (klavye ve fare) arasında geçiÅŸ eski hızlı alır ve yavaÅŸlar.

  • Åžeritleri yeniden oluÅŸturulması zor: Kodunuzu yeniden ne zaman, film ÅŸeridi ne beklediÄŸini hala aynı olduÄŸundan emin olun. Etrafında ÅŸeyler film ÅŸeridi içinde taşıdığınızda, EÄŸer hala kod ile çalışma anında göreceksiniz. EÄŸer senkronize iki dünya tutmak için var gibi bana geliyor. Kırılgan hissediyorum ve benim düşünceme göre deÄŸiÅŸiklik etmemektedir.

  • Åžeritleri aranabilir deÄŸil: Güncellemelerinden proje-geniÅŸ bir arama ÅŸeritleri kullandığınızda. gerçekten proje-geniÅŸ bir arama deÄŸil Aramaya dahil deÄŸildir. Yani kaldırdığınızda bir özel sınıf kodunuzu veya yeniden adlandırmak, sen-ecek var manuel ile film ÅŸeridi ya bak onun ham XML emin olmak için üzerinde par ile kodunuzu deÄŸiÅŸtirir. Efendim, ben bunu sevmiyorum.Güncelleme: Åžeritleri Güncellemelerinden 6 aranabilir.

  • Åžeritleri daha az esnektirKod, aslında istediÄŸin her ÅŸeyi yapabilirsin! Film ÅŸeritleri ile kod içinde neler yapabileceÄŸini bir alt kümesi sınırlıdır. Özellikle animasyonlar ile bazı geliÅŸmiÅŸ ÅŸeyler yapmak istediÄŸinizde ve kendinizi "" iÅŸ. almak için film ÅŸeridi mücadele bulacaksınız geçiÅŸler

  • Åžeritlerini özel görünümü denetleyicileri türünü deÄŸiÅŸtirmesine izin vermeyin: A UICollectionViewController a UITableViewController? deÄŸiÅŸtirmek istediÄŸiniz Ya da bir düz içine UIViewController? Mümkün olmayan bir film. Eski görünümü denetleyicisi silmek ve yeni bir tane oluÅŸturmak zorunda ve yeniden baÄŸlayın tüm dedirtiyor. Çok daha kolay kodunda böyle bir deÄŸiÅŸiklik yapmak.

  • Çizimlerini proje için iki ek yükümlülükler ekleyin: (1) film ÅŸeridi oluÅŸturduÄŸu Film Åžeridi Düzenleyicisi aracı XML ve (2) XML ayrıştırma ve UI ve denetleyici oluÅŸturduÄŸu çalışma zamanı bileÅŸeni nesneleri. Her iki parça da düzeltemezsin hatalar olabilir.

  • EÄŸer iÅŸletim sistemi UIImageView için bir alt görünümünü eklemek için izin yokNeden kim bilir.

  • Åžeritleri tek tek Görüntülemek için Otomatik Düzen etkinleÅŸtirmek için izin verme(-Kontrol): Kontrol/film ÅŸeridinde Otomatik Düzen seçeneÄŸi iÅŸaretini kaldırarak, deÄŸiÅŸiklik Åžeridi TÃœM denetleyicileri için uygulanır. (Sava sayesinde bu noktaya Mazăre!)

  • Åžeritleri geriye doÄŸru uyumluluk kırılma riski daha yüksek: Güncellemelerinden bazen Film Åžeridi dosya biçimini deÄŸiÅŸtirir ve bir kaç yıl hatta ay sonra bugün oluÅŸturduÄŸunuz Film Åžeridi dosyaları açmak için mümkün olacağını hiçbir ÅŸekilde garanti etmez. (Bu nokta için thoughtadvances için teÅŸekkürler. See the original comment)

  • McDonald's var: Steve Jobs' Microsoft ile Ä°lgili Kelimeler: 9**! söylemek

Bu gerçekten şeritleri ile çalışmayı sevmiyorum neden benim nedenleri vardır. Bu nedenlerden bazıları da XİBs için geçerlidir. Üzerinde çalıştığım film şeridi tabanlı projelerde, beni kurtardı oranla çok daha fazla zaman ve durum daha karmaşık yapmışlar yerine daha kolay bir maliyeti var.

Zaman yaratırım benim arayüzü ve uygulama akışı kodu, ben çok daha fazla kontrol ne oluyor, daha kolay hata ayıklama için, bu daha kolay nokta hataları erken, daha kolay açıklamak benim değişiklikler için diğer geliştiriciler ve daha kolay Destek iPhone ve iPad.

Ancak, bu döşeme katılıyorumsizin UIkod her proje için bir tek beden uyan tüm çözüm olmayabilir. Eğer iPad UI büyük ölçüde, belirli yerlerde iPhone UI farklıysa, sense sadece bu alanlar için bir XİB oluşturmak için yapabilirsiniz.

Yukarıda anlatılan sorunları bir sürü Elma ile sabit olabilir ve ne yapacaklarını umarım.

Sadece benim iki sent.

Güncelleme: Güncellemelerinden 5, Apple bir film Şeridi olmayan bir proje oluşturmak için bu seçeneği aldı. Port Güncellemelerinden 5 için 4 şablonları (Film Şeridi-opt-out "seçeneği ile)" Güncellemelerinden küçük bir senaryo yazdım: https://github.com/jfahrenkrug/Xcode4templates

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013