Aktualizace vizuálního návrhu v iOSu 11
V iOSu 11 společnost Apple zavedla nové vizuální změny, včetně aktualizací navigačního panelu, vyhledávacího panelu a zobrazení tabulek. Kromě toho jsme vylepšili možnosti větší flexibility nad okraji a obsahem na celé obrazovce. Tyto změny jsou popsané v této příručce.
Informace o návrhu pro iPhone X najdete ve videu společnosti Apple designing for iPhone X.
UIKit
Pruhy UIKit byly upraveny v iOSu 11, aby byly přístupnější pro koncové uživatele.
Jednou z těchto změn je nové zobrazení HUD, které se zobrazí, když uživatel dlouho stiskne položku pruhu. Pokud to chcete povolit, nastavte largeContentSizeImage
vlastnost na UIBarItem
a přidejte větší image prostřednictvím katalogu prostředků:
barItem.LargeContentSizeImage = UIImage.FromBundle("AccessibleImage");
Navigační panel
iOS 11 zavedl nové funkce, které usnadňují čtení nadpisů navigačního panelu. Aplikace můžou zobrazit tento větší název přiřazením PrefersLargeTitles
vlastnosti k hodnotě true:
NavigationController.NavigationBar.PrefersLargeTitles = true;
Nastavení větších názvů v aplikaci zvětší všechny názvy navigačních panelů v aplikaci, jak je znázorněno na následujícím snímku obrazovky:
Chcete-li určit, kdy se na navigačním panelu zobrazí velký název, nastavte LargeTitleDisplayMode
u navigační položky Always
hodnotu , Never
nebo Automatic
.
Kontroler vyhledávání
iOS 11 usnadňuje přidání kontroleru vyhledávání přímo do navigačního panelu. Po vytvoření kontroleru vyhledávání ho přidejte do navigačního panelu SearchController
s vlastností:
NavigationItem.SearchController = searchController;
V závislosti na funkcích aplikace můžete nebo nechcete, aby se panel hledání skryl, když uživatel prochází seznamem. Můžete to upravit pomocí HidesSearchBarWhenScrolling
vlastnosti.
Okraje
Apple vytvořil novou vlastnost , directionalLayoutMargins
která se dá použít k nastavení prostoru mezi zobrazeními a dílčími zobrazeními. Používá se directionalLayoutMargins
se sadami leading
nebo trailing
insety. Bez ohledu na to, jestli je systém jazyk zleva doprava nebo zprava doleva, nastaví se v aplikaci správně mezery v iOSu.
V iOSu 10 a předtím měly všechna zobrazení minimální velikost okraje, ke které by se zarovnaly. iOS 11 zavedl možnost přepsání pomocí ViewRespectsSystemMinimumLayoutMargins
. Například nastavení této vlastnosti na false umožňuje upravit hraniční insety na nulu:
ViewRespectsSystemMinimumLayoutMargins = false;
View.LayoutMargins = UIEdgeInsets.Zero;
Obsah na celé obrazovce
IOS 7 zavedltopLayoutGuide
a bottomLayoutGuide
jako způsob omezení zobrazení tak, aby nebyly skryté pruhy UIKit a jsou ve viditelné oblasti obrazovky. Ty byly v iOSu 11 zastaralé ve prospěch bezpečné oblasti.
Bezpečná oblast představuje nový způsob myšlení o viditelném prostoru aplikace a o tom, jak se mezi zobrazením a super zobrazením přidávají omezení. Podívejme se například na následující obrázek:
Pokud jste dříve přidali zobrazení a chtěli, aby byl viditelný ve výše uvedené zelené oblasti, omezili byste ho na konecTopLayoutGuide
a horní část BottomLayoutGuide
okna . V iOSu 11 byste ho místo toho omezili na horní a dolní část oblasti Sejf. Příklad:
var safeGuide = View.SafeAreaLayoutGuide;
imageView.TopAnchor.ConstraintEqualTo(safeGuide.TopAnchor).Active = true;
safeGuide.BottomAnchor.ConstraintEqualTo(imageView.BottomAnchor).Active = true;
Zobrazení tabulky
UiTableView má řadu malých, ale významných změn v iOSu 11.
Ve výchozím nastavení mají záhlaví, zápatí a buňky automaticky velikost na základě jejich obsahu. Chcete-li se odhlásit z tohoto chování EstimatedRowHeight
automatického nastavení velikosti , EstimatedSectionHeaderHeight
nebo EstimatedSectionFooterHeight
na nulu.
Za určitých okolností (například při přidávání UITableViewController při použití existujících scénářů v Tvůrci rozhraní) ale možná budete muset ručně povolit buňky s vlastním určením velikosti. Chcete-li to provést, ujistěte se, že jste v zobrazení tabulky pro buňky, záhlaví a zápatí nastavili následující vlastnosti:
// Cells
TableView.RowHeight = UITableView.AutomaticDimension;
TableView.EstimatedRowHeight = UITableView.AutomaticDimension;
// Header
TableView.SectionHeaderHeight = UITableView.AutomaticDimension;
TableView.EstimatedSectionHeaderHeight = 40f;
//Footer
TableView.SectionFooterHeight = UITableView.AutomaticDimension;
TableView.EstimatedSectionFooterHeight = 40f;
iOS 11 rozšířil funkce akcí řádků. UISwipeActionsConfiguration
byla zavedena k definování sady akcí, které by se měly provést, když uživatel potáhne v libovolném směru na řádku v zobrazení tabulky. Toto chování se podobá nativnímu Mail.app. Další informace najdete v průvodci akcemi řádků .
Zobrazení tabulek podporují přetažení v iOSu 11. Další informace najdete v průvodci přetažením .