Jazyk Swift změnil způsob, jakým vývojáři vytvářejí a udržují aplikace. Jeho účinnost a snadná syntaxe z něj udělaly oblíbený nástroj při vývoji aplikací. Jedním z prvků, které k tomuto bohatému zážitku přispívají, je možnost měnit velikosti písma podle zařízení. Tento článek prozkoumá řešení, jak toho dosáhnout, krok za krokem rozebere kód a představí některé jedinečné knihovny a funkce Swift, které to bezproblémově umožňují.
import UIKit class ViewController: UIViewController { @IBOutlet var label: UILabel! override func viewDidLoad() { super.viewDidLoad() let deviceType = UIDevice.current.model switch deviceType { case "iPhone": label.font = label.font.withSize(20) case "iPad": label.font = label.font.withSize(30) default: label.font = label.font.withSize(16) } } }
Porozumění kodexu
Ve výše uvedeném fragmentu kódu začínáme importem knihovny UIKit. UIKit je základní rámec, který se používá ke konstrukci a správě grafické aplikace řízené událostmi pro iOS. Hraje neocenitelnou roli při vytváření uživatelského rozhraní (UI) aplikací pro iOS.
Poté deklarujeme třídu `ViewController` dědící z `UIViewController`, který je součástí rámce UIKit. Tato třída bude ovládat a spravovat pohled, ve kterém chceme změnit velikost písma.
V metodě viewDidLoad zavoláme vlastnost model aktuálního objektu UIDevice, abychom zkontrolovali typ zařízení. Blok kódu pod přepínačem funguje podle toho, jaké zařízení se používá, a mění velikost písma v závislosti na tom, zda se jedná o iPhone, iPad nebo jakýkoli jiný typ (označený jako „výchozí“). Tato adaptivní velikost textu zlepšuje User Experience (UX) – klíčový aspekt vývoje aplikací.
Prozkoumávání UIDevice
UIDevice je zvláště užitečná třída ve Swiftu a poskytuje nám data o používaném zařízení. Nabízí jedinečné rozhraní pro získávání dat o zařízení a jeho aktuálních podmínkách. Zde používáme UIDevice.current.model která nám udává model zařízení, na kterém aplikace běží (např. iPhone, iPad atd.).
Nejlepší na UIDevice je, že nevyžaduje žádnou inicializaci objektu. Vlastnost 'current' je statická vlastnost a všechny vlastnosti a metody pod UIDevice jsou vlastnostmi a metodami instance. Tato funkce pomáhá vývojářům psát méně, ale plně funkční kód, což je hledisko, které Swift prosazuje.
Implementace UILabel a UIFont
UILabel, ač jednoduchá a přitom výkonná třída, slouží k zobrazení statického textu resp připisované řetězce. V této souvislosti používáme UILabel k vyvolání textu, jehož velikost písma měníme.
UIFont je klíčovou součástí mnoha tříd UIKit, které se zabývají reprezentací textu. Nabízí rozhraní pro získávání objektů písem, kde každý objekt představuje písmo, které je optimalizováno pro vykreslování v uživatelských rozhraních. V našem případě použijeme funkci withSize() na label.font pro úpravu velikosti textu.
Od porozumění kódu Swift až po zdůraznění některých důležitých aspektů UIKit, UIDevice, UILabel & UIFont by vám procházení tohoto článku poskytlo podrobný přehled o způsobu, jakým Swift zachází s velikostí písma podle zařízení. Tyto znalosti podporují porozumění Swiftu jako jazyku a pokládají pevný základ pro vytváření uživatelsky přívětivých rozhraní.