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 (obiektUIColor).font– czcionka używana do renderowania tekstu.textAlignment– wyrównanie tekstu (lewy, prawy, wyśrodkowany, justowany).numberOfLines– maksymalna liczba wierszy; wartość0oznacza 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
- Używaj
UILabeldo krótkich, stałych opisów oraz tytułów sekcji. - W przypadku dynamicznie zmieniających się treści rozważ zastosowanie UITextView, który obsługuje przewijanie i edycję.
- Stosuj
adjustsFontSizeToFitWidthlubminimumScaleFactorw celu zachowania czytelności na małych ekranach. - Włącz tryb Dynamic Type, aby etykiety automatycznie dopasowywały się do preferencji użytkownika.
- Unikaj nadmiernego użycia
numberOfLines = 0w tabelach – może to prowadzić do nieprzewidywalnych wysokości komórek.
Alternatywy i odpowiedniki w innych ekosystemach
- Android:
TextView - Flutter: widget
Text - React Native: komponent
Text - Windows (UWP):
TextBlock
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.