Úvod do iOSu 6
iOS 6 obsahuje nejrůznější nové technologie pro vývoj aplikací, které Xamarin. iOS 6 přináší vývojářům v jazyce C#.
s ios 6 a Xamarin. iOS 6 mají vývojáři k dispozici širokou škálu funkcí pro vytváření aplikací pro iOS, včetně těch, které cílí na iPhone 5. Tento dokument obsahuje seznam zajímavých nových funkcí, které jsou k dispozici, a odkazy na články pro jednotlivá témata. kromě toho se dotkne několika změn, které budou důležité, protože vývojáři přesunou na iOS 6 a nové řešení iPhone 5.
Úvod do zobrazení kolekcí
Zobrazení kolekcí umožňují zobrazení obsahu pomocí libovolného rozložení. Umožňují snadno vytvářet rozložení podobná mřížce mimo pole, ale podporují také vlastní rozložení. Další informace najdete v tématu Úvod do Průvodce zobrazeními kolekcí .
Úvod do PassKit
PassKit Framework umožňuje aplikacím pracovat s digitálními průchody, které jsou spravovány v aplikaci aplikaci Passbook. Další informace najdete v příručce Úvod do sady Pass Kit.
Úvod do EventKitu
EventKitu Framework poskytuje způsob, jak získat přístup k kalendářům, událostem kalendáře a datům připomenutí, které ukládá kalendář databáze. Přístup k kalendářům a událostem kalendáře byl k dispozici od verze iOS 4, ale iOS 6 nyní zpřístupňuje přístup k datům připomenutí. Další informace najdete v příručcentroduction to EventKitu .
Úvod do sociální architektury
Sociální rozhraní poskytuje sjednocené rozhraní API pro interakci se sociálními sítěmi, včetně Twitteru a Facebooku, a také SinaWeibo pro uživatele v Číně. Další informace najdete v tématu Úvod do Průvodce rámec sociálních sítí .
Změny ve StoreKitu
Společnost Apple zavedla v sadě Storu dvě nové funkce: nákup a stahování iTunes nebo App Storu obsahu z vaší aplikace a hostování souborů obsahu pro nákupy v aplikaci!. Další informace najdete v průvodci změny v sadě Store Kit .
Další změny
ViewWillUnload a ViewDidUnload zastaralé
ViewWillUnloadMetody a ViewDidUnloadUIViewController již nejsou volány v iOS 6. V předchozích verzích iOS mohly být tyto metody využívány aplikacemi pro uložení stavu před zobrazením pro uvolnění a vyčištění kódu.
například Visual Studio pro Mac by vytvořila metodu nazvanou ReleaseDesignerOutlets , která je uvedená níže, která by pak byla volána z ViewDidUnload :
void ReleaseDesignerOutlets ()
{
if (myOutlet != null) {
myOutlet.Dispose ();
myOutlet = null;
}
}
V iOS 6 ale už nemusíte volat ReleaseDesignerOutlets .
Pro kód pro vyčištění by se měly používat aplikace pro iOS 6 DidReceiveMemoryWarning . Nicméně kód, který volá, Dispose by se měl používat jenom zřídka a jenom pro objekty náročné na paměť, jak je znázorněno níže:
if (myImageView != null){
if (myImageView.Superview == null){
myImageView.Dispose();
myImageView = null;
}
}
Znovu, volání Dispose podle výše by mělo být potřeba zřídka. Obecně platí, že většina aplikací je třeba odebrat obslužné rutiny událostí.
V případě uložení stavu můžou aplikace provádět tyto kroky v ViewWillDisappear a ViewDidDisappear místo ViewWillUnload .
řešení iPhone 5
iPhone 5 zařízení mají rozlišení 640x1136. aplikace cílené na předchozí verze iOS se při spuštění iPhone 5 zobrazí letterboxed, jak je znázorněno níže:
chcete-li, aby se aplikace zobrazila na iPhone 5 na celé obrazovce, stačí přidat obrázek s názvem Default-568h@2x.png s řešením 640x1136. Následující snímek obrazovky ukazuje aplikaci spuštěnou po zahrnutí této image:
UINavigationBar podtříd
V systému iOS 6 UINavigationBar lze podtřídit. Tím je umožněno lepší řízení vzhledu a chování UINavigationBar . Například aplikace mohou podtřídám přidat podzobrazení, animovat tato zobrazení a upravovat hranice UINavigationBar .
Následující kód ukazuje příklad podtřídy UINavigationBar , která přidá 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);
}
}
Chcete-li přidat podtřídu UINavigationBar do UINavigationController , použijte UINavigationController konstruktor, který přebírá typ UINavigationBar a UIToolbar , jak je znázorněno níže:
navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));
Výsledkem použití této UINavigationBar podtřídy je zobrazení obrázku zobrazené na následujícím snímku obrazovky:
Orientace rozhraní
Před tím, než aplikace pro iOS 6 může přepsat ShouldAutorotateToInterfaceOrientation , vrátí hodnotu true pro všechny směry, které podporuje příslušný kontroler. Například následující kód by se měl použít k podpoře jenom na výšku:
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
}
V systému iOS 6 ShouldAutorotateToInterfaceOrientation je zastaralá.
Místo toho se můžou aplikace přepsat GetSupportedInterfaceOrientations na řadiči kořenového zobrazení, jak je znázorněno níže:
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
return UIInterfaceOrientationMask.Portrait;
}
v iPad je toto výchozí nastavení pro všechny čtyři orientace, pokud GetSupportedInterfaceOrientation není implementováno. na iPhone a iPod Touch je výchozí hodnota všechna orientace s výjimkou PortraitUpsideDown .



