Développement web ecommerce & mobile

Des services web à forte valeur ajoutée au service de votre croissance

Solution au problème d’ajout de marges aux headers des UITableView sur iOS 15

Retourner à la liste des articles

Depuis la sortie récente de iOS 15, vous aurez sans doute vu apparaître une marge au dessus de vos headers de UITableViews sur vos applications iOS.

Ne cherchez plus à quoi cela est dû ! Depuis la sortie du nouvel iOS, une propriété sectionHeaderTopPadding a été ajoutée à l’objet UITableView ligne 508 de la définition de UITableView dans UIKit :

/// Padding above each section header. The default value is UITableViewAutomaticDimension.
@available(iOS 15.0, *)
open var sectionHeaderTopPadding: CGFloat

Pour résoudre cela, soit au cas par cas, quand vous instanciez la classe UITableView alors vous fixez tableView.sectionHeaderTopPadding = 0.0

Sinon vous completez dans votre AppDelegate.swift la fonction application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool comme suit :

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        if #available(iOS 15.0, *)
        {
            UITableView.appearance().sectionHeaderTopPadding = 0;
        }
        return true
    }