Notch — en utskärning i den övre delen av iPhone-displayen som rymmer frontkameran, högtalaren och Face ID-sensorerna. Först introducerad i iPhone X (2017), förändrade notch hur mobila gränssnitt utformas: skärmområdet runt utskärningen blev en "död zon" för innehåll. För att anpassa gränssnittet introducerade Apple Safe Area — marginaler som garanterar att innehåll inte täcks av notch, rundade hörn och Home Indicator. På Android implementeras ett liknande koncept via safeAreaInsets i iOS och displayCutout + WindowInsets i Android.
Huvudpunkter
Notch (utskärning, "ögonbryn") — området i den övre delen av smartphonens skärm där frontkameran, samtalshögtalaren, närhets- och ljussensorer, och för iPhone X och nyare — Face ID-infrarödkameran, punktprojektorn och belysningen (TrueDepth-kamerasystemet) är placerade. Notchen introducerades för att öka den användbara skärmytan samtidigt som alla nödvändiga sensorer bevaras — istället för den övre ramen (bezel) expanderar displayen uppåt runt utskärningen.
Mått: standard iPhone-notch har en bredd på ~34 mm (~209 pt i porträttorientering för 6.1-tumsmodeller) och en höjd på ~5 mm (~30 pt). Vid sidorna av notchen finns "öron" (ears) — små skärmdelar till höger och vänster om utskärningen. Det högra "örat" visar vanligtvis tid, batteriindikator och Wi-Fi; det vänstra — operatör och status. I liggande orientering döljer iOS notchen med en svart stapel över hela statusfältets bredd — innehåll visas inte i utskärningszonen.
Inte bara iPhone: notch-konceptet antogs av många Android-tillverkare. Google Pixel 3 XL, OnePlus 6, Huawei P20, Xiaomi Mi 8 — alla hade utskärning. Vissa tillverkare gick längre: "droppformad" utskärning (waterdrop notch), punch-hole-kamera (hål i skärmen), skjutkamera (utdragbar modul). Moderna Android-flaggskepp (Samsung Galaxy S23+, Google Pixel 8 Pro) använder punch-hole — ett minimalt hål för kameran i den övre delen av skärmen, utan bred utskärning.
Safe Area — är ett rektangulärt område inuti vyn som garanterat inte täcks av systemgränssnittselement: notch, rundade skärmhörn (corner radius), Home Indicator, flikfält (tab bar) och navigeringsfält (navigation bar). Safe Areas mått returneras via egenskapen UIView.safeAreaInsets — UIEdgeInsets med värdena top, left, bottom, right. För iPhone med notch är den övre marginalen = ~44 pt (porträtt) eller ~0 pt (liggande med svart stapel).
// Användning av safeAreaInsets för att positionera innehåll
class NotchAwareViewController: UIViewController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Läsa Safe Area-marginaler
let safeArea = self.view.safeAreaInsets
// Logga värden för felsökning
print("Övre insättning: \(safeArea.top)") // ~44 pt med notch
print("Nedre insättning: \(safeArea.bottom)") // ~34 pt med Home Indicator
// Positionera rubrik med hänsyn till Safe Area
titleLabel.frame = CGRect(
x: safeArea.left + 16,
y: safeArea.top + 16,
width: self.view.bounds.width - safeArea.left - safeArea.right - 32,
height: 44
)
}
// Hantering av Safe Area-ändringar (rotation, Multi-Tasking)
override func viewSafeAreaInsetsDidChange() {
super.viewSafeAreaInsetsDidChange()
viewDidLayoutSubviews() // Omberäkning av layout
}
}Auto Layout och Safe Area: i Interface Builder, använd "Safe Area" som anchor-mål istället för "Superview". För programmerad layout, använd safeAreaLayoutGuide: let guide = view.safeAreaLayoutGuide; titleLabel.topAnchor.constraint(equalTo: guide.topAnchor). iOS uppdaterar automatiskt safeAreaInsets vid enhetsrotation, övergång till Split View på iPad, visning/döljning av tangentbord och orienteringsändring. Alla standard UIKit-kontroller (UINavigationController, UITabBarController) tar redan hänsyn till Safe Area. Anpassade vyer och kontroller måste explicit använda safeAreaInsets.
DisplayCutout — Android SDK-klassen, tillagd i API 28 (Android 9.0), som beskriver utskärningsområdet på skärmen. Den kan erhållas via WindowInsets.displayCutout(). Klassen returnerar boundingBoxList — en lista med rektanglar som beskriver utskärningen(arna) och safeInsetTop/safeInsetBottom/safeInsetLeft/safeInsetRight — minimala marginaler för säker visning av innehåll. Android stöder olika utskärningskonfigurationer: central (som iPhone), sidolagd (kamera i hörnet), dubbel (två kameror), punch-hole.
// Anpassning av gränssnitt till DisplayCutout i Activity
class NotchAwareActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Tillåter visning av innehåll i utskärningszonen (om nödvändigt)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.attributes.layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
}
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
// Hämta DisplayCutout via WindowInsets
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && hasFocus) {
val cutout = window.decorView.rootWindowInsets.displayCutout
val safeTop = cutout?.safeInsetTop ?: 0
// Ställ in marginal för övre innehåll
headerView.updatePadding(top = safeTop)
}
}
}Visningslägen (layoutInDisplayCutoutMode): ALWAYS — innehåll kan visas i utskärningszonen (för fullskärmsappar, video, spel); NEVER — innehåll täcker aldrig utskärningen, systemet lägger till marginal; SHORT_EDGES — innehåll visas i utskärningszonen endast på kortsidan (för porträttappar med notch högst upp). Standardläge — SHORT_EDGES (från Android 12). För punch-hole-kamera är utskärningen mindre och många appar använder ALWAYS för maximal skärmanvändning.
iPhone X (2017) — den första Apple-smarttelefonen med notch. Utskärningen innehöll TrueDepth-kameran för Face ID — ett system bestående av infraröd kamera, punktprojektor (Dot Projector) och belysning (Flood Illuminator). Utskärningens mått: ~34 mm × 5 mm. I iOS 11 introducerade Apple Safe Area för anpassning av appar. Användarna delades: vissa accepterade notchen som nödvändighet för Face ID, andra kritiserade den för den "beskurna" skärmen.
iPhone 13 (2021) — Apple minskade notchen med 20% genom att flytta högtalaren till skärmens övre ram. Detta var den sista klassiska notchen. iPhone 14 och 14 Plus (2022) behöll den minskade notchen. iPhone 14 Pro och Pro Max introducerade Dynamic Island — en ellipsoid utskärning som kombinerar kameran och Face ID-sensorerna, dynamiskt ändrar form och visar systemmeddelanden (timer, musik, AirPods-anslutning). Dynamic Island blev en mjukvaruplattform med eget API (ActivityKit, Live Activities).
| Generation | Typ av utskärning | Funktioner | Safe Area Top |
|---|---|---|---|
| iPhone X–XS (2017–2018) | Stor notch | Face ID, 34×5 mm | 44 pt |
| iPhone XR (2018) | Notch | Touch ID, mindre notch | 44 pt |
| iPhone 11 (2019) | Notch | Face ID, bred utskärning | 44 pt |
| iPhone 12 (2020) | Notch | Högtalare flyttad till ram | 44 pt |
| iPhone 13 (2021) | Minskad notch | 20% mindre | 44 pt |
| iPhone 14 / 14 Plus (2022) | Minskad notch | Utan Face ID (14 Plus) | 44 pt |
| iPhone 14 Pro (2022) | Dynamic Island | Adaptiv utskärning | 54 pt |
| iPhone 15–16 (2023–2024) | Dynamic Island | ActivityKit, Live Activities | 54 pt |
Dynamic Island — är inte bara en utskärning, utan ett interaktivt gränssnittselement. När AirPods ansluts expanderar ön och visar ikon och status. En taxibeställning (Uber) visar ankomsttiden. En timer syns i ön när appen minimeras. Dynamic Island finns på iPhone 14 Pro/Pro Max, iPhone 15/15 Pro/15 Pro Max, iPhone 16/16 Pro/16 Pro Max. Safe Area för Dynamic Island: övre marginal = 54 pt (10 pt mer än klassisk notch).
Göm aldrig innehåll bakom notchen — använd Safe Area eller DisplayCutout för automatisk beräkning av marginaler. Ställ inte in fasta marginalvärden (t.ex. 44 pt) — de varierar på olika enheter och i olika orienteringar. Använd alltid system-API:er för att läsa Safe Area: safeAreaInsets i iOS, windowInsets.displayCutout i Android. Detta garanterar korrekt visning på alla enheter: iPhone SE (utan notch), iPhone 14 Pro (notch), iPhone 15 (Dynamic Island), iPad (utan notch, men med Home Indicator).
Liggande orientering — en särskild riskzon. På iPhone med notch i liggande läge lägger iOS automatiskt till en svart stapel över hela statusfältets bredd (innehåll till vänster och höger om notchen visas inte). Detta görs av systemet med Safe Area inset = 0 top, men ökade left/right insets (~47 pt). Försök inte inaktivera detta beteende — App Store avvisar appen som använder "förbjudna" skärmzoner för innehåll i liggande läge. För fullskärmsvideo, använd AVPlayerViewController, som automatiskt placerar kontroller utanför notch-zonen.
| Regel | iOS | Android |
|---|---|---|
| API för marginaler | safeAreaInsets / safeAreaLayoutGuide | WindowInsets.displayCutout.safeInsetTop |
| Anpassning till rotation | viewSafeAreaInsetsDidChange | onWindowFocusChanged |
| Fullskärmsläge | prefersStatusBarHidden = true | SYSTEM_UI_FLAG_FULLSCREEN |
| Statusfältsinnehåll | Automatiskt i "öron" nära notch | Via layoutInDisplayCutoutMode |
| Liggande orientering | Svart stapel (automatiskt) | Marginaler från WindowInsets |
| Video/spel | AVPlayerViewController (säkert) | LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS |
Bakgrund och statusfält: om du använder en anpassad bakgrundsfärg ska den fylla hela skärmområdet, inklusive zonen bakom notchen. Rita inte innehåll över statusfältet — använd Safe Area. För mörkt läge, se till att statusfältet är läsbart: ställ in preferredStatusBarStyle enligt din bakgrundsstil (.default för mörk text på ljus bakgrund, .lightContent för ljus text på mörk bakgrund).
Simulatorer och emulatorer: Xcode tillhandahåller simulatorer för alla iPhone-modeller med notch (iPhone X–14) och Dynamic Island (iPhone 14 Pro–15). Android Studio tillhandahåller emulatorer med olika utskärningskonfigurationer (Google Pixel 3 XL, anpassad emulator med cutout). Testa i porträtt- och liggande orientering, med och utan tangentbord, i Split View (iPad). Kontrollera att allt innehåll är läsbart och inte täckt.
Riktiga enheter: notchen på en simulator och på en riktig enhet kan skilja sig. Till exempel visar iPhone 14 Pro-simulatorn Dynamic Island, men utan verklig interaktivitet (Live Activities). I Android kan punch-hole-kameran kanske inte emuleras exakt. Det bästa sättet är att testa på riktiga enheter. Minsta uppsättning: iPhone SE (utan notch), iPhone 14 (notch), iPhone 15 Pro (Dynamic Island), Android med punch-hole, Android med waterfall-skärm (Samsung Edge).
Verktyg: för iOS, använd Xcode View Debugger med alternativet "Show Safe Area Insets" — visar visuellt Safe Areas gränser. För Android — Layout Inspector i Android Studio, som visar WindowInsets och DisplayCutout i panelen Attributes. Accessibility Inspector är också användbar för att kontrollera att alla element inom Safe Area är tillgängliga för VoiceOver/TalkBack. Glöm inte iPad utan notch, men med Home Indicator (nedre marginal ~21 pt) och rundade hörn.
Vanliga Frågor
För iPhone med notch (X–14) i porträttorientering: top = 44 pt, left = 0, right = 0, bottom = 34 pt (Home Indicator). För iPhone med Dynamic Island (14 Pro–16): top = 54 pt, bottom = 34 pt. För iPhone SE (utan notch): top = 20 pt (statusfält), bottom = 0 pt (om ingen Home Indicator) eller 21 pt (för modeller med Home Indicator). I liggande: top = 0, left = 47 pt, right = 47 pt, bottom = 21 pt.
Notch — en statisk utskärning för kameran och Face ID-sensorerna. Dynamic Island — ett mjukvaru-maskinvaruelement som ändrar form och visar meddelanden, timers, Live Activities. Dynamic Island finns på iPhone 14 Pro och nyare. Safe Area för Dynamic Island är större (top = 54 pt vs 44 pt för notch). Dynamic Island stöder ActivityKit API för tredjepartsutvecklare.
I Android fås marginalen under DisplayCutout via WindowInsets. Anrop: decorView.rootWindowInsets.displayCutout?.safeInsetTop. För API 28+ (Android 9). Visningsläget hanteras via window.attributes.layoutInDisplayCutoutMode: NEVER (marginal), SHORT_EDGES (marginal på kortsidan), ALWAYS (ingen marginal). För punch-hole-kamera är safeInsetTop lika med statusfältets höjd (~24 dp).
I liggande orientering lägger iOS automatiskt till svarta staplar vid skärmens sidor så att innehåll inte visas i utskärningszonen. Detta är systembeteende som regleras av Safe Area insets (left/right ~47 pt). Orsak: i liggande läge är "öronen" vid sidan av notchen för små för att visa användbart innehåll. För fullskärmsappar (video, spel) kan AVPlayerViewController med automatisk spelarhantering användas.
Ja, användning av Safe Area är obligatoriskt för alla appar som publiceras i App Store. Apple kontrollerar detta vid granskning: om innehåll täcks av notch, rundade hörn eller Home Indicator avvisas appen. I Android är rekommendationen: använd WindowInsets för anpassning under utskärningen. Från Android 12 är läget SHORT_EDGES standard och systemet lägger automatiskt till marginaler under utskärningen för appar som inte använder anpassade layouter.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också