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#.
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 ViewDidUnload
klasy :
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:
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:
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 UINavigationController
klasy , 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:
Orientacja interfejsu
Przed aplikacjami systemu iOS 6 można zastąpić ShouldAutorotateToInterfaceOrientation
wartość , 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
.