SORU
14 EYLÜL 2013, CUMARTESİ


AutomaticallyAdjustsScrollViewİnsets, extendedLayoutİncludesOpaqueBars arasındaki farkı anlatan iOS7 içinde edgesForExtendedLayout

İOS7 UI geçiş hakkında çok şey okudum.

Bu üç özellik ne 2*, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout?*al bulunamam?

Örneğin görüntüleyin benim denetleyicileri durum çubuğunun altında başlangıç yapmaya çalışıyorum ama ulaşmak mümkün değil.

CEVAP
25 EKİM 2013, Cuma


İOS7 görünüm denetleyicileri başlangıç varsayılan olarak tam ekran düzeni kullanın. Aynı zamanda, kendi görüşlerini ortaya koyan nasıl üzerinde daha fazla kontrole sahip, ve bu özellikleri ile yapılır

edgesForExtendedLayout

Temelde, bu özelliği ile uzatılabilir bütün ekranı kaplayacak şekilde ayarlayın. Aklına bile itme UIViewController UINavigationController, zaman görünümü bu görünüm denetleyicisi olduğunu ortaya koydu, öyle başladığı gezinti çubuğu sona erer, ama bu özelliği ayarlamak, hangi tarafın görünümü (üst, sol, alt, sağ) genişletilmiş doldurmak için tam ekran.

Hadi bunu bir örnekle görelim:

UIViewController *viewController = [[UIViewController alloc] init];
viewController.view.backgroundColor = [UIColor redColor];
UINavigationController *mainNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

Burada görünüm, tüm ekranı doldurmak için kendi düzenini uzanır yani varsayılan değeri alınır bu nedenle edgesForExtendedLayout, (UIRectEdgeAll), değeri ayarı.

Sonuç şöyle:

enter image description here

Gördüğünüz gibi, kırmızı arka plan gezinti çubuğu ve durum çubuğunun arkasında uzanır.

Şimdi, görünüm ve denetleyici ekranı kapsayacak şekilde genişletmek için değil diyorsun yani UIRectEdgeNone, bu değeri ayarlamak için gidiyoruz:

UIViewController *viewController = [[UIViewController alloc] init];
viewController.view.backgroundColor = [UIColor redColor];
viewController.edgesForExtendedLayout = UIRectEdgeNone;
UINavigationController *mainNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

Ve sonuç:

enter image description here

automaticallyAdjustsScrollViewİnsets

Bu özellik görünümü UITableView gibi UIScrollView veya benzeri bir yöntemdir. Kaydırma zaman tablo tüm ekranı kapsayacak şekilde istediğiniz aynı anda değil, ama tüm içeriğini görmek alışkanlık çünkü masanız gezinti çubuğu bittiği yerde başlamak istiyorum. Bu durumda, Hiçbiri edgesForExtendedLayout AYAR tablosu gezinti çubuğu bittiği yerde kaymaya başlar ve bu alışkanlık arkasına geç, çünkü işe yaramaz.

İşte bu özellik kullanışlı geliyor, izin verirsen görünümü denetleyicisi otomatik olarak ayarla parçalar (ayar bu özellik için EVET, aynı zamanda varsayılan değer) bir eklenti olarak eklemek için üst tablo, tablo edecek başladığı gezinti çubuğu biter, ama kayar kapak tam ekran.

Bu HAYIR olarak ayarlandığında

enter image description here

Ve (varsayılan) EVET:

enter image description here

Her iki durumda da, masanın navigasyon barın arkasına kayar, ama ikinci durumda (EVET), navigasyon çubuğunun altında başlayacak.

extendedLayoutİncludesOpaqueBars

Bu değer, bir önceki olanlar için sadece bir ektir. Eğer durum çubuğunda opak ise, görüşlerini Bu parametre EVET değilse, durum çubuğu vardır o uzun, olmayacak.

Eğer uzatırsanız, gezinti çubuğu (edgesForExtendedLayout UIRectEdgeAll) ve parametre kapak görünümü (varsayılan) eğer opak ise durum çubuğu kapağı bu alışkanlık YOK.

Eğer bir şey açık değilse, bir yorum yazmak ve buna cevap vereceğim.

** Nasıl iOS bilir ne UİScrollView? ** iOS viewcontroller görüşüne göre ilk küme kapmak, dizindeki bir 0, ve eğer UIScrollView bir alt sınıfı ise daha sonra izah özellikleri geçerlidir.

Tabii ki, bu UITableViewController varsayılan UITableView ilk görünümü olduğundan) çalışır anlamına gelir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Kap Slap

    Kap Slap

    8 Mart 2010
  • TechBalance

    TechBalance

    12 HAZİRAN 2011