Úvod do iOSu 6
iOS 6 obsahuje řadu nových technologií pro vývoj aplikací, které Xamarin.iOS 6 přináší vývojářům v jazyce C#.
Díky systémům iOS 6 a Xamarin.iOS 6 teď mají vývojáři k dispozici řadu možností pro vytváření aplikací pro iOS, včetně těch, které cílí na iPhone 5. Tento dokument obsahuje některé z zajímavějších nových funkcí, které jsou k dispozici, a odkazy na články pro každé téma. Kromě toho se dotkne několika změn, které budou důležité při přechodu vývojářů na iOS 6 a nové rozlišení iPhone 5.
Úvod do zobrazení kolekcí
Zobrazení kolekcí umožňují zobrazení obsahu pomocí libovolných rozložení. Umožňují snadno vytvářet rozložení podobná mřížce a zároveň podporovat vlastní rozložení. Další informace naleznete v příručce Úvod do zobrazení kolekce.
Úvod do PassKitu
Architektura PassKit umožňuje aplikacím pracovat s digitálními průchody spravovanými v aplikaci Passbook. Další informace najdete v příručce Úvod do sady Pass Kit.
Úvod do EventKitu
Architektura EventKit poskytuje způsob, jak získat přístup k datům kalendáře, událostí kalendáře a připomenutí uložených v databázi kalendáře. Přístup k kalendářům a událostem kalendáře byl k dispozici od iOS 4, ale iOS 6 teď zpřístupňuje přístup k datům připomenutí. Další informace najdete v příručce I ntroduction do EventKitu .
Úvod do sociálního rámce
Rozhraní Social Framework poskytuje jednotné rozhraní API pro interakci se sociálními sítěmi, včetně Twitteru a Facebooku, stejně jako SinaWeibo pro uživatele v Číně. Další informace naleznete v příručce Úvod do sociálního rozhraní .
Změny ve StoreKitu
Apple představil dvě nové funkce sady Store Kit: nákup a stažení obsahu z iTunes nebo App Storu z vaší aplikace a hostování souborů obsahu pro nákupy v aplikaci!. Další informace najdete v průvodci sadou Changes to Store Kit .
Další změny
ZobrazeníWillUnload a ViewDidUnload zastaralé
V ViewWillUnload
iOSu UIViewController
6 už nejsou volána metody a ViewDidUnload
metody. V předchozích verzích iOS mohly tyto metody používat aplikace k uložení stavu před uvolněním zobrazení a vyčištění kódu.
Například Visual Studio pro Mac vytvoří metodu nazvanou ReleaseDesignerOutlets
níže, která by pak byla volána z ViewDidUnload
:
void ReleaseDesignerOutlets ()
{
if (myOutlet != null) {
myOutlet.Dispose ();
myOutlet = null;
}
}
V iOSu 6 však již není nutné volat ReleaseDesignerOutlets
.
Pro vyčištění kódu by měly aplikace pro iOS 6 používat DidReceiveMemoryWarning
. Kód, který volá Dispose
, by se však měl používat střídmě a pouze 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;
}
}
Opětovné volání Dispose
, jak je uvedeno výše, by mělo být potřeba jen zřídka. Obecně platí, že většina aplikací by měla provádět odebrání obslužných rutin událostí.
V případě uložení stavu můžou aplikace tuto akci provést a ViewWillDisappear
ViewDidDisappear
nikoli ViewWillUnload
.
iPhone 5 Rozlišení
Zařízení iPhone 5 mají rozlišení 640x1136. Aplikace, které cílí na předchozí verze iOS, se při spuštění na iPhonu 5 zobrazí ve schránce s písmeny, jak je znázorněno níže:
Aby se aplikace zobrazovala na iPhonu 5 na celé obrazovce, jednoduše přidejte obrázek s názvem Default-568h@2x.png
s rozlišením 640x1136. Následující snímek obrazovky ukazuje, že aplikace spuštěná po zahrnutí tohoto obrázku:
Podtřídy UINavigationBar
V iOSu 6 UINavigationBar
je možné podtřídět. To umožňuje další kontrolu nad vzhledem a chováním UINavigationBar
. Aplikace mohou například podtřídu přidat dílčí zobrazení, animovat tato zobrazení a upravit hranice objektu 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 a UINavigationBar
UIToolbar
, jak je znázorněno níže:
navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));
Použitím této UINavigationBar
podtřídy se zobrazí zobrazení obrázků, jak je znázorněno na následujícím snímku obrazovky:
Orientace rozhraní
Před aplikacemi pro iOS 6 se může přepsat ShouldAutorotateToInterfaceOrientation
hodnota true pro všechny orientace, které konkrétní kontroler podporuje. Například následující kód by se použil k podpoře pouze na výšku:
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
}
V iOSu 6 ShouldAutorotateToInterfaceOrientation
je zastaralý.
Místo toho 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;
}
Na iPadu se ve výchozím nastavení nastaví všechny čtyři orientace, pokud GetSupportedInterfaceOrientation
nejsou implementovány. Na iPhonu a iPodu Touch je výchozím nastavením všechny orientace kromě PortraitUpsideDown
.