How to set edgesForExtendedLayout to none in Swift

2019-03-17 03:39发布

The problem is that my View, containing a UIView and a UITableView within a ScrollView, gets hidden under the UINavigationBar if set translucent.

I have considered several threads like this, but they all suggest to set:

self.edgesForExtendedLayout = UIRectEdgeNone

In Swift 2, this code was:

self.edgesForExtendedLayout = .None

I have updated to Xcode 8.1 and Swift 3.0.1 today, but I can't find anything in the release notes about this matter.

The compiler tells me, that .None got changed to .none, but after edit, that .none does not exist. Changing it to .top did not had any effect.

The tableView is setup programatically and putting insets does not help because I have a scrollView with a UIView on top of the UITableView that is hidden under the UINavigationBar.

What am I missing? Help is very appreciated.

标签: ios swift swift3
2条回答
一纸荒年 Trace。
2楼-- · 2019-03-17 04:16

Set it to []. That is the same as none.

查看更多
放我归山
3楼-- · 2019-03-17 04:30
self.edgesForExtendedLayout = UIRectEdge.init(rawValue: 0)
查看更多
登录 后发表回答