Arbeta med fönster och utsikt i iPad Apps

October 26

iPad apps har ett enda fönster, så att du inte kommer att hitta ytterligare dokumentfönster för att visa innehåll. När din ansökan är igång - även om andra appar kan vara ide eller körs i bakgrunden - appens gränssnitt tar över hela skärmen.

IOS Fönster

Den enda fönster som du ser visas på iPad eller iPhone är en instans av UIWindow klassen. Detta fönster skapas vid lanseringen tid, antingen genom programmering av dig eller automatiskt av UIKit när du använder en storyboard. I allmänhet, när du har skapat fönsterobjektet (det vill säga om du skapar det istället för att ha det gjort för dig), du aldrig riktigt tänka på det igen.

En användare kan inte direkt stänga eller manipulera en iOS-fönstret. Det är din app som prog hanterar fönstret.

Även din ansökan skapar aldrig mer än ett fönster åt gången, kan iOS stödja ytterligare fönster ovanpå ditt fönster. Systemets statusfält är ett exempel. Du kan också visa varningar på toppen av din fönstret med hjälp av medföljande Alert åsikter.

IOS View

I en iOS-app värld, granska objekt ansvarar för vyn funktionalitet i Model-View-Controller-arkitekturen. En vy är ett rektangulärt område på skärmen (ovanpå ett fönster).

Inom ramen UIKit, fönstren är verkligen en speciell typ av vy, men för att denna diskussion, åsikter sitter högst upp i fönstret.

Vad vyer gör

Åsikter är den viktigaste vägen för din app för att interagera med en användare. Denna interaktion sker på två sätt:

  • Visningar visa innehåll. Detta händer till exempel genom att göra ritning och animation hända på skärmen. I huvudsak visar vyn objektet data från modellobjektet.
  • Visningar hantera pekhändelser. Visningar svarar när användaren rör en knapp, till exempel. Hantering pekhändelser är en del av en svarskedja.

Utsikten hierarki

Visningar och subviews skapa en vy hierarki. Du har två sätt att se på det (no pun intended denna gång): visuellt (hur användaren uppfattar det) och programmässigt (hur du skapar det). Du måste vara tydlig om skillnaderna eller om du hittar dig själv i ett tillstånd av förvirring som liknar tunnelbanan vid rusningstid.

Titta på det visuellt, är fönstret vid basen av denna hierarki med ett Content syn på toppen av det (en transparent vy som fyller fönstrets innehåll rektangel). Innehålls vyn visar information samt så att användaren kan interagera med programmet, med hjälp av (helst standard) användargränssnitt poster såsom textfält, knappar, verktygsfält och tabeller.

I ditt program, är att relationen annorlunda. Innehållet uppfattning läggs till vyn fönster som subview. Men Innehåll uppfattning kan också ha sina egna subviews, och så vidare. Möjliga relationer inkluderar:

  • Visningar läggs till innehålls vyn blir subviews av det.
  • Visningar läggs till innehålls uppfattning bli superviews om eventuella synpunkter som läggs till dem.
  • En vy kan ha en (och endast en) Super och noll eller flera subviews.

Det verkar ologiskt men en subview visas på toppen av sin modervyn (dvs på toppen av sin Super). Tänk på detta förhållande som inneslutning: En Super innehåller dess subviews. Denna figur visar ett exempel på en vy hierarki.

Arbeta med fönster och utsikt i iPad Apps

Utsikten hierarkin är både visuell och strukturell.

Kontroller - såsom knappar, textfält, och så vidare - är faktiskt visa subklasser som blir subviews. Så finns några andra visnings områden som du kan ange. Utsikten måste förvalta sina subviews, samt ändra storlek själv med avseende på dess superviews. Lyckligtvis mycket av vad vyn måste göra redan kodade för dig. Ramverket UIKit levererar den kod som definierar view beteende.

Utsikten hierarkin spelar också en viktig roll i både teckning och händelsehantering.

Du skapar eller ändrar en vy hierarki när du lägger till en till en annan vy, antingen programmässigt eller med hjälp av Interface Builder. Ramverket UIKit hanterar automatiskt de relationer som är associerade med vyn hierarkin.

Utvecklare skyla vanligtvis över denna visuella-versus-programma-view-hierarki grejer när du börjar - och utan att förstå dessa begrepp, det är verkligen svårt att få grepp om vad som händer.