web-dev-qa-db-fra.com

Comment définir bordsForExtendedLayout à aucun dans Swift 3

Le problème est que ma vue, contenant un UIView et un UITableView dans un ScrollView, est masquée sous le UINavigationBar si défini translucide .

J'ai considéré plusieurs threads comme this , mais ils suggèrent tous de définir:

self.edgesForExtendedLayout = UIRectEdgeNone

Dans Swift 2, ce code était:

self.edgesForExtendedLayout = .None

J'ai mis à jour Xcode 8.1 et Swift 3.0.1 aujourd'hui, mais je ne trouve rien dans les notes de version à ce sujet.

Le compilateur me dit que .None a été remplacé par .none, mais après modification, que .none n'existe pas. Le changer en .top n'a eu aucun effet.

La tableView est configurée par programme et mettre insets n'aide pas car j'ai un scrollView avec un UIView au-dessus du UITableView qui est caché sous le UINavigationBar.

Qu'est-ce que je rate? L'aide est très appréciée.

37
David Seek

Réglez-le sur []. C'est la même chose que rien.

117
matt
self.edgesForExtendedLayout = UIRectEdge.init(rawValue: 0)
14
Leslie Fang

Je ne sais pas comment mais j'ajoute juste le code suivant dans mon viewDidLoad () self.navigationController? .NavigationBar.isTranslucent = false Et cela résout mon problème.

0
Abdul Qayum