Udostępnij za pośrednictwem


Wprowadzenie do systemu iOS 6

System iOS 6 zawiera różne nowe technologie do tworzenia aplikacji, które platforma Xamarin.iOS 6 udostępnia deweloperom języka C#.

Logo systemu iOS 6

Dzięki systemom iOS 6 i Xamarin.iOS 6 deweloperzy mają teraz wiele możliwości do tworzenia aplikacji dla systemu iOS, w tym aplikacji przeznaczonych dla iPhone'a 5. W tym dokumencie wymieniono niektóre z bardziej ekscytujących nowych funkcji, które są dostępne i linki do artykułów dla każdego tematu. Ponadto dotyka kilku zmian, które będą ważne, jak deweloperzy przechodzą do systemu iOS 6 i nowej rozdzielczości iPhone 5.

Wprowadzenie do widoków kolekcji

Widoki kolekcji umożliwiają wyświetlanie zawartości przy użyciu dowolnych układów. Umożliwiają one łatwe tworzenie układów przypominających siatkę poza ramkami, a także obsługę układów niestandardowych. Aby uzyskać więcej informacji, zobacz Przewodnik Wprowadzenie do widoków kolekcji.

Wprowadzenie do zestawu PassKit

Platforma PassKit umożliwia aplikacjom interakcję z przekazywaniem cyfrowym zarządzanym w aplikacji Passbook. Aby uzyskać więcej informacji, zobacz Przewodnik Wprowadzenie do zestawu Pass Kit.

Wprowadzenie do zestawu EventKit

Struktura EventKit umożliwia uzyskiwanie dostępu do danych kalendarzy, zdarzeń kalendarza i przypomnień przechowywanych przez bazę danych kalendarza. Dostęp do kalendarzy i wydarzeń kalendarza był dostępny od systemu iOS 4, ale system iOS 6 udostępnia teraz dostęp do danych przypomnień. Aby uzyskać więcej informacji, zobacz przewodnik I ntroduction to EventKit .

Wprowadzenie do programu Social Framework

Struktura społecznościowa udostępnia ujednolicony interfejs API do interakcji z sieciami społecznościowymi, w tym Twitter i Facebook, a także SinaWeibo dla użytkowników w Chinach. Aby uzyskać więcej informacji, zobacz Przewodnik Wprowadzenie do platformy Social Framework .

Zmiany w zestawie StoreKit

Firma Apple wprowadziła dwie nowe funkcje w zestawie Store: kupowanie i pobieranie zawartości iTunes lub App Store z poziomu aplikacji oraz hostowanie plików zawartości na potrzeby zakupów w aplikacji!. Aby uzyskać więcej informacji, zobacz Przewodnik dotyczący zmian w zestawie Store Kit .

Inne zmiany

ViewWillUnload i ViewDidUnload przestarzałe

Metody ViewWillUnload UIViewController i ViewDidUnload nie są już wywoływane w systemie iOS 6. W poprzednich wersjach systemu iOS te metody mogły być używane przez aplikacje do zapisywania stanu przed zwolnieniem widoku i odpowiednio oczyszczanie kodu.

Na przykład Visual Studio dla komputerów Mac utworzy metodę o nazwie ReleaseDesignerOutlets, pokazaną poniżej, która następnie zostanie wywołana z ViewDidUnloadklasy :

void ReleaseDesignerOutlets ()
{
    if (myOutlet != null) {
        myOutlet.Dispose ();
        myOutlet = null;
    }
}

Jednak w systemie iOS 6 nie jest już konieczne wywołanie metody ReleaseDesignerOutlets.

Aby wyczyścić kod, aplikacje systemu iOS 6 powinny używać polecenia DidReceiveMemoryWarning. Jednak kod, który wywołuje Dispose , powinien być używany oszczędnie i tylko w przypadku obiektów intensywnie korzystających z pamięci, jak pokazano poniżej:

if (myImageView != null){
    if (myImageView.Superview == null){
        myImageView.Dispose();
        myImageView = null;
    }
}

Ponownie, wywołanie Dispose tak jak powyżej powinno być rzadko potrzebne. Ogólnie rzecz biorąc, większość aplikacji powinna to zrobić, aby usunąć programy obsługi zdarzeń.

W przypadku zapisywania stanu aplikacje mogą wykonać tę operację w ViewWillDisappear programie i ViewDidDisappear zamiast ViewWillUnload.

Rozdzielczość telefonu iPhone 5

Urządzenia iPhone 5 mają rozdzielczość 640x1136. Aplikacje, które dotyczyły poprzednich wersji systemu iOS, będą wyświetlane w skrzynce pocztowej po uruchomieniu na telefonie iPhone 5, jak pokazano poniżej:

Aplikacje przeznaczone dla poprzednich wersji systemu iOS będą wyświetlane w skrzynce pocztowej po uruchomieniu na telefonie iPhone 5

Aby aplikacja wyglądała na pełny ekran na telefonie iPhone 5, wystarczy dodać obraz o nazwie Default-568h@2x.png o rozdzielczości 640x1136. Poniższy zrzut ekranu przedstawia aplikację uruchomioną po dołączeniu tego obrazu:

Ten zrzut ekranu przedstawia aplikację uruchomioną po dołączeniu tego obrazu

Podklasowanie UINavigationBar

W systemie iOS 6 UINavigationBar można klasyfikować podklasy. Umożliwia to dodatkową kontrolę nad wyglądem i działaniem obiektu UINavigationBar. Na przykład aplikacje mogą podklasy dodawać podwyglądy, animować te widoki i modyfikować granice obiektu UINavigationBar.

Poniższy kod przedstawia przykład podklasy, UINavigationBar która dodaje element UIImageView:

public class CustomNavBar : UINavigationBar
{
​    UIImageView iv;
    public CustomNavBar (IntPtr h) : base(h)
​    {
​​        iv = new UIImageView (UIImage.FromFile ("monkey.png"));
​​        iv.Frame = new CGRect (75, 0, 30, 39);
​    }
    public override void Draw (RectangleF rect)
​    {
​​        base.Draw (rect);
        TintColor = UIColor.Purple;
​​        AddSubview (iv);
​    }
}

Aby dodać podklasę UINavigationBar do UINavigationControllerklasy , użyj UINavigationController konstruktora, który przyjmuje typ UINavigationBar i UIToolbar, jak pokazano poniżej:

navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));

Użycie tej UINavigationBar podklasy powoduje wyświetlenie widoku obrazu, jak pokazano na poniższym zrzucie ekranu:

Użycie tej podklasy UINavigationBar powoduje wyświetlenie widoku obrazu, jak pokazano na tym zrzucie ekranu

Orientacja interfejsu

Przed aplikacjami systemu iOS 6 można zastąpić ShouldAutorotateToInterfaceOrientationwartość , zwracając wartość true dla wszystkich orientacji obsługiwanych przez określony kontroler. Na przykład następujący kod będzie używany do obsługi tylko portretu:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
    }

W systemie iOS 6 ShouldAutorotateToInterfaceOrientation jest przestarzały. Zamiast tego aplikacje mogą zastąpić GetSupportedInterfaceOrientations kontroler widoku głównego, jak pokazano poniżej:

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return UIInterfaceOrientationMask.Portrait;
    }

Na urządzeniu iPad to ustawienie domyślne dla wszystkich czterech orientacji, jeśli GetSupportedInterfaceOrientation nie zostanie zaimplementowane. Na telefonach iPhone i iPod Touch wartość domyślna to wszystkie orientacje z wyjątkiem PortraitUpsideDown.