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");

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:

Large navigation title

Chcete-li určit, kdy se na navigačním panelu zobrazí velký název, nastavte LargeTitleDisplayMode u navigační položky Alwayshodnotu , Nevernebo 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;

Large navigation title with search bar

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;

Image showing margin with zero inset in ios 11

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:

Safe area vs Top and bottom layout guide

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 BottomLayoutGuideokna . 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í EstimatedRowHeightautomatického nastavení velikosti , EstimatedSectionHeaderHeightnebo 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 .