ios - Swift iOS 以编程方式在导航栏下方设置 scrollView 约束

标签 ios swift uiscrollview

我的 UIViewController 嵌入在导航 Controller 中。我以编程方式添加导航按钮,现在尝试在此导航栏下方添加一个 scrollView。我遇到的问题是这是填充整个框架大小并进入导航栏下方。

如何以编程方式设置此 ScrollView 的约束?

var scrollView: UIScrollView!
var containerView = UIView()

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.title = "Filters"
    // add some buttons on the navigation

    self.scrollView = UIScrollView()
    self.scrollView.backgroundColor = UIColor.grayColor()
    self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height)

    containerView = UIView()

    scrollView.addSubview(containerView)
    view.addSubview(scrollView)

    let label = UILabel(frame: CGRectMake(0, 0, 100, 21))
    label.text = "my label"
    containerView.addSubview(label)
}

最佳答案

虽然 Clafou 的回答肯定是正确的,但如果您不需要透明度并想在导航栏下开始,真正正确的方法是更改​​ ViewController 的行为以使其正确适合内容。为此,您有两种选择:

1) 假设你有 Storyboard,转到 ViewController Attributes Inspector 并禁用“Under top bars”

enter image description here

2) 假设您通过代码了解一切,您将需要查找以下属性 - edgesForExtendedLayoutextendedLayoutIncludesOpaqueBars。有 great answer因为已经在 SO 上了,所以我不会在这里介绍它。

希望对您有所帮助!

关于ios - Swift iOS 以编程方式在导航栏下方设置 scrollView 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428483/

相关文章:

ios - UI更新太快怎么办?

ios - 如何计算一个人滚动过的每张图像

swift - 围绕底部旋转图像?

iPhone iOS 如何在启用缩放时使 UIScrollView 与 UIRotationGestureRecognizer 一起工作?

iphone - 将 ScrollView 中的图像打开到新的 View Controller 中

ios - 如何以编程方式检索 UIScrollView? (iOS 5 Storyboard)

ios - UITextField 不会将文本保存到 CoreData 中

ios - 如何修改AudioUnit Buffer的大小?

ios - 第一个 leftBarButtonItem 隐藏

ios - 边框有背景颜色渗透