encyklopedia.space

UILabel

UILabel – podstawowy komponent interfejsu użytkownika w ramach biblioteki UIKit firmy Apple. Służy do wyświetlania tekstu w aplikacjach działających na platformach iOS, iPadOS, tvOS oraz macOS (poprzez warstwę AppKit w postaci NSTextField).

Historia

UILabel po raz pierwszy pojawił się w systemie iPhone OS 2.0, wydanym w 2008 roku. Został wprowadzony jako część UIKit, której celem było uproszczenie budowy graficznego interfejsu użytkownika dla developerów. Od tego czasu komponent przeszedł liczne udoskonalenia, takie jak obsługa AttributedString, automatyczne dostosowywanie rozmiaru czcionki (adjustsFontSizeToFitWidth) oraz obsługa trybu ciemnego (Dark Mode).

Podstawowe właściwości

  • text – łańcuch znaków wyświetlany w etykiecie.
  • textColor – kolor tekstu (obiekt UIColor).
  • font – czcionka używana do renderowania tekstu.
  • textAlignment – wyrównanie tekstu (lewy, prawy, wyśrodkowany, justowany).
  • numberOfLines – maksymalna liczba wierszy; wartość 0 oznacza nieograniczoną liczbę.
  • lineBreakMode – sposób łamania wierszy (np. byTruncatingTail).
  • adjustsFontSizeToFitWidth – skalowanie czcionki, aby mieściła się w dostępnej szerokości.
  • allowsDefaultTighteningForTruncation – dopuszczanie zwężania znaków przy przycinaniu tekstu.

Tworzenie i konfigurowanie

Instancję UILabel można utworzyć programowo lub w interfejsie graficznym Xcode (Storyboard/Interface Builder). Poniżej przedstawiono przykładowy kod w języku Swift:


import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let label = UILabel()
        label.translatesAutoresizingMaskIntoConstraints = false
        label.text = "Witaj w świecie iOS!"
        label.textColor = .systemBlue
        label.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
        label.textAlignment = .center
        label.numberOfLines = 1
        label.adjustsFontSizeToFitWidth = true

        view.addSubview(label)

        // Proste ograniczenia Auto Layout
        NSLayoutConstraint.activate([
            label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            label.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            label.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 20),
            label.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -20)
        ])
    }
}
    

Rola w architekturze MVC

W tradycyjnej architekturze Model‑View‑Controller (MVC) UILabel klasyfikuje się jako element View. Przechowuje jedynie informacje o prezentacji (tekst, styl, pozycja) i nie zawiera logiki biznesowej. Jego zawartość jest aktualizowana przez kontroler w odpowiedzi na zmiany w modelu danych.

Zastosowania i dobre praktyki

  1. Używaj UILabel do krótkich, stałych opisów oraz tytułów sekcji.
  2. W przypadku dynamicznie zmieniających się treści rozważ zastosowanie UITextView, który obsługuje przewijanie i edycję.
  3. Stosuj adjustsFontSizeToFitWidth lub minimumScaleFactor w celu zachowania czytelności na małych ekranach.
  4. Włącz tryb Dynamic Type, aby etykiety automatycznie dopasowywały się do preferencji użytkownika.
  5. Unikaj nadmiernego użycia numberOfLines = 0 w tabelach – może to prowadzić do nieprzewidywalnych wysokości komórek.

Alternatywy i odpowiedniki w innych ekosystemach

Patrzenie w przyszłość

W kolejnych wersjach iOS oraz macOS komponent UILabel jest stale rozwijany, aby lepiej wspierać technologię SwiftUI. W SwiftUI najbliższym odpowiednikiem jest Text, który zapewnia deklaratywną składnię i natychmiastowe odświeżanie interfejsu.

Źródła

Informacje pochodzą z oficjalnej dokumentacji Apple Developer oraz z materiałów szkoleniowych dostępnych na platformie WWDC. Dalsze szczegóły można znaleźć w książkach i publikacjach poświęconych programowaniu w Swift i Objective‑C.