pt — was ist das, Points und Skalierung in iOS

Autor: IT Sectr Veröffentlicht: 2026-02-25 Lesezeit: 8 Min.

pt — points, eine logische Maßeinheit in iOS und macOS, die die Schnittstelle von der physischen Bildschirmauflösung abstrahiert. Ein point entspricht einem Pixel auf einem Nicht-Retina-Bildschirm (@1x) und zwei oder drei Pixeln auf Retina (@2x, @3x). Dieser Artikel erklärt das Funktionsprinzip von pt, die Skalierung auf verschiedenen Bildschirmen, die Verwendung von CGPoint und UIFont.pointSize.

Wichtige Punkte

  • pt — ein logischer iOS-Punkt, unabhängig von der physischen Bildschirmauflösung
  • @1x, @2x, @3x — Skalierungsfaktor, der bestimmt, wie viele Pixel auf einen Punkt entfallen
  • CGPoint — Struktur für Koordinaten in pt, Grundlage aller Positionierungsoperationen
  • UIFont.pointSize — Schriftgröße in Punkten, immer in pt zurückgegeben
  • Bildschirmentfernung: iPhone 15 Pro — 1 pt = 3 px bei einer Pixeldichte von 460 PPI

Was ist pt in iOS?

pt (point) — eine logische Maßeinheit in iOS, die es dem Entwickler ermöglicht, die Benutzeroberfläche in abstrakten Koordinaten zu beschreiben, die unabhängig von der physischen Displayauflösung sind. Apple führte das Konzept der Points mit der Veröffentlichung des iPhone 4 und des Retina-Displays im Jahr 2010 ein. Vor Retina verwendeten Entwickler direkt Pixel — ein UI-Pixel entsprach einem physischen Pixel.

Das iOS-Koordinatensystem basiert auf Punkten: Punkt (0,0) befindet sich in der oberen linken Ecke des Bildschirms, die X-Achse verläuft nach rechts, die Y-Achse nach unten. Die Bildschirmgröße in Punkten bleibt für jede Geräteklasse konstant: iPhone SE — 375×667 pt, iPhone 15 Pro — 393×852 pt, iPad — 768×1024 pt (Hochformat), 1024×768 pt (Querformat). Die physische Auflösung kann 1179×2556 px (iPhone 15 Pro) betragen — aber der Entwickler arbeitet mit Punkten.

Laut den Apple Human Interface Guidelines sind Punkte die grundlegende Abstraktion von UIKit. Alle Frameworks — UIKit, SwiftUI, Core Graphics, SpriteKit — arbeiten in Punkten. Die Umwandlung in Pixel erfolgt automatisch während des Renderns über UIScreen.nativeScale.

Skalierungsfaktoren: @1x, @2x, @3x

Der Skalierungsfaktor bestimmt, wie viele physische Pixel einem logischen Punkt entsprechen. Apple verwendet drei Stufen: @1x — 1 pt = 1 px (iPad mini ohne Retina, ältere Modelle), @2x — 1 pt = 2 px (die meisten iPhones vor 2020, iPad Retina), @3x — 1 pt = 3 px (iPhone X und neuer, einschließlich iPhone 15 Pro).

GerätGröße in ptGröße in pxSkalierung
iPhone SE (3. Gen.)375 × 667750 × 1334@2x
iPhone 14390 × 8441170 × 2532@3x
iPhone 15 Pro Max430 × 9321290 × 2796@3x
iPad Pro 12.9"1024 × 13662048 × 2732@2x
iPad mini (6. Gen.)744 × 11331488 × 2266@2x

Der Skalierungsfaktor ist über UIScreen.main.scale (für UIKit) und @Environment(\.displayScale) (für SwiftUI) verfügbar. Er wird beim Laden von Assets verwendet: Das System wählt automatisch das Bild mit dem Suffix @2x oder @3x aus Assets.xcassets aus. Der Entwickler sollte auf Retina-Geräten keine @1x-Bilder laden — dies verringert Leistung und Qualität.

CGPoint und Koordinaten in Punkten

Die CGPoint-Struktur ist der grundlegende Typ zur Darstellung von Koordinaten in iOS und macOS. Sie enthält zwei Felder: x (CGFloat) und y (CGFloat), die Werte werden in Punkten angegeben. CGPoint wird in allen Apple-Frameworks verwendet: UIKit (frame.origin), Core Graphics (CGContext), SpriteKit (SKNode.position), Core Animation (CALayer.position).

swift
// CGPoint — Arbeiten mit Koordinaten in Punkten
import UIKit

// Erstellen eines Punkts
let point = CGPoint(x: 100.0, y: 200.0)
print("Koordinaten: \(point.x), \(point.y)")

// Mathematische Operationen
let offset = CGPoint(x: 16.0, y: 8.0)
let translated = CGPoint(
    x: point.x + offset.x,
    y: point.y + offset.y
)

// Abstand zwischen Punkten
func distance(from a: CGPoint, to b: CGPoint) -> CGFloat {
    let dx = b.x - a.x
    let dy = b.y - a.y
    return sqrt(dx * dx + dy * dy)
}

// Konvertierung von Punkten in Pixel
extension CGPoint {
    func toPixels(scale: CGFloat) -> CGPoint {
        CGPoint(x: x * scale, y: y * scale)
    }
}

Die Methode toPixels im Beispiel demonstriert die Konvertierung von Punkten in physische Pixel über UIScreen.main.scale. In UIKit erfolgt diese Konvertierung automatisch während des Renderns, aber in Core Graphics und bei der Arbeit mit Metal kann der Entwickler eine explizite Pixelkonvertierung benötigen. Alle Animationsberechnungen, Kollisionserkennung und Layouts werden in Punkten durchgeführt.

UIFont.pointSize und Typografie

Die Eigenschaft UIFont.pointSize gibt die Schriftgröße in Punkten zurück — dies ist die standardmäßige Typografie-Einheit in iOS, die aus dem Druckwesen übernommen wurde (1 pt = 1/72 Zoll). Apple verwendet pt für Schriften seit den frühen Versionen von Mac OS. In iOS wird die Schriftgröße in Punkten über UIFont.systemFont(ofSize:) oder über SwiftUI Font.system(size:) angegeben.

swift
// Arbeiten mit UIFont.pointSize in Swift
import UIKit

// Erstellen einer Schriftart mit Größe in pt
let titleFont = UIFont.systemFont(ofSize: 28.0, weight: .bold)
let bodyFont = UIFont.systemFont(ofSize: 17.0)
let captionFont = UIFont.systemFont(ofSize: 12.0)

// Lesen von pointSize
print("Titelgröße: \(titleFont.pointSize) pt")

// Dynamic Type — automatische Skalierung
let scaledFont = UIFontMetrics.default.scaledFont(for: bodyFont)
print("Skaliert: \(scaledFont.pointSize) pt")

// Vergleich von Schriftgrößen
func font(from size: CGFloat, weight: UIFont.Weight) -> UIFont {
    UIFont.systemFont(ofSize: size, weight: weight)
}

UIFontMetrics ist ein in iOS 11 hinzugefügter dynamischer Schrift-Skalierungsmechanismus. Er passt pointSize automatisch an die Barrierefreiheitseinstellungen des Benutzers an (Settings > Display & Brightness > Text Size). Ohne UIFontMetrics werden Schriften nicht skaliert, was gegen die WCAG-Barrierefreiheitsanforderungen verstößt.

pt vs px: Unterschiede

Der Unterschied zwischen pt und px ist für das Verständnis der iOS-Entwicklung entscheidend. pt ist eine logische Einheit, px eine physische Einheit. Ein Punkt kann je nach Skalierungsfaktor 1, 2 oder 3 Pixeln entsprechen. Der Entwickler arbeitet in Punkten, das System wandelt sie in der Rasterisierungsphase in Pixel um.

Eigenschaftptpx
EinheitentypLogisch (geräteunabhängig)Physisch (Hardware-Pixel)
Abhängig von AuflösungNeinJa
VerwendungUIKit, SwiftUI, Core Graphics, LayoutBilder, Metal, raw buffer
Konvertierung1 pt = scale × px (Skala 1 bis 3)1 px = pt / scale
Beispiel (iPhone 15 Pro)393 × 852 pt1179 × 2556 px

Wichtige Schlussfolgerung: Die Größe der Benutzeroberfläche in Punkten ist auf allen Geräten derselben Klasse identisch. Ein 375 pt breiter Bildschirm — dies gilt sowohl für das iPhone SE als auch für das iPhone 14 (Basismodell). Der einzige Unterschied ist, wie viele physische Pixel in diese 375 pt passen. Dies gewährleistet eine einheitliche UI ohne manuelle Anpassung für jedes Gerät.

pt in SwiftUI

In SwiftUI arbeitet der Entwickler nicht explizit mit Punkten — alle Größen werden über Dp (geräteunabhängige Punkte, äquivalent zu pt) angegeben. SwiftUI wendet den Skalierungsfaktor automatisch beim Rendern an, bietet aber Zugriff darauf über den Umgebungswert displayScale.

swift
// SwiftUI — Arbeiten mit Punkten und Skalierungsfaktor
import SwiftUI

struct ContentView: View {
    @Environment(\.displayScale) private var displayScale

    var body: some View {
        VStack(spacing: 16) {
            Text("Titel")
                .font(.system(size: 28, weight: .bold))

            Text("Beispiel-Fließtext")
                .font(.body)

            HStack {
                Text("Skalierungsfaktor:")
                    .font(.caption)
                Text("\(displayScale, specifier: "%.1f")")
                    .font(.caption.weight(.bold))
            }
        }
        .padding(20)
        .frame(width: 300)
    }
}

SwiftUI abstrahiert pt auf Framework-Ebene. .font(.body) verwendet automatisch Dynamic Type — die Schriftgröße passt sich den Benutzereinstellungen an. SwiftUI erlaubt es nicht, die Schriftgröße in Pixeln anzugeben — nur über Font und das Typografie-System. Dies gewährleistet die Barrierefreiheit der Benutzeroberfläche ohne zusätzlichen Aufwand für den Entwickler.

Häufig gestellte Fragen

Was ist der Unterschied zwischen pt und px?

pt — ein logischer iOS-Punkt, unabhängig von der Bildschirmauflösung. px — ein physisches Display-Pixel. Ein Punkt auf dem iPhone 15 Pro entspricht drei Pixeln (@3x), auf dem iPad Pro — zwei (@2x). Der Entwickler arbeitet immer in Punkten.

Wie finde ich den Skalierungsfaktor eines Geräts heraus?

In UIKit: UIScreen.main.scale. In SwiftUI: @Environment(\.displayScale). Typische Werte: 1.0 (@1x), 2.0 (@2x), 3.0 (@3x). Auf dem iPhone 15 Pro Max beträgt der Wert 3.0.

Welche Schriftgröße sollte ich für Fließtext verwenden?

Apple empfiehlt 17 pt für Fließtext (UIFontTextStyle.body). Für Überschriften — 28–34 pt. Für Beschriftungen — 12–13 pt. Dynamic Type-Stile werden automatisch basierend auf den Barrierefreiheitseinstellungen des Benutzers skaliert.

Was ist Dynamic Type in iOS?

Dynamic Type — das automatische Schrift-Skalierungssystem von iOS, eingeführt in iOS 7. Es ermöglicht Texten, sich an die Systemschriftgrößeneinstellungen (Text Size) und Barrierefreiheitsparameter (Bold Text, Larger Text) anzupassen. Implementiert über UIFontMetrics oder SwiftUI Font-Stile.

Muss ich @1x-Assets für iOS erstellen?

Nein. Moderne Apple-Geräte verwenden Retina-Displays mit @2x oder @3x. @1x-Bilder werden nur für die Kompatibilität mit Nicht-Retina-iPads (iPad 2, iPad mini 1. Gen.) benötigt. Seit iOS 13 unterstützen alle Geräte mindestens @2x.

Zusammenfassung

  • pt — eine logische iOS-Einheit, die die Benutzeroberfläche von physischer Auflösung und Skalierungsfaktor abstrahiert
  • @2x und @3x — Skalierungsfaktoren für Retina-Displays, die die Anzahl der Pixel pro Punkt bestimmen
  • CGPoint — Struktur für Koordinaten in Punkten, Grundlage aller Positionierungsoperationen in UIKit
  • UIFont.pointSize — Schriftgröße in Punkten mit Dynamic Type-Unterstützung über UIFontMetrics
  • SwiftUI abstrahiert pt vollständig und verwendet Font und Dynamic Type zur automatischen Anpassung
  • Assets für iOS sollten in @2x und @3x bereitgestellt werden, @1x ist für moderne Geräte nicht erforderlich
  • Dynamic Type — ein obligatorischer Barrierefreiheitsmechanismus, der Schriftarten automatisch für den Benutzer skaliert

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch