首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISegmentedControl隐藏在titleBar下面

UISegmentedControl隐藏在titleBar下面
EN

Stack Overflow用户
提问于 2014-08-23 19:59:28
回答 1查看 279关注 0票数 1

我想我错过了一些与UISegmentedControl和自动布局。

我有一个TabbedApplication (UITabBarController),我创建了一个新的UIViewController作为选项卡。在新视图中,我添加了UISegmentedControl,并使用自动布局将其放置在顶部。

我想我不完全明白一些事情,因为UISegmentedControl隐藏在titleBar下面。你能帮我理解我错过了什么吗?谢谢你。

代码语言:javascript
复制
import Foundation
import UIKit;

class ViewLikes:UIViewController {

override func viewDidLoad()  {
    super.viewDidLoad()
    title = "some title";


    var segmentControl:UISegmentedControl = UISegmentedControl(items:["blash", "blah blah"]);
    segmentControl.selectedSegmentIndex = 1;


    segmentControl.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.view.addSubview(segmentControl)

    //Set layout
    var viewsDict = Dictionary <String, UIView>()
    viewsDict["segment"] = segmentControl;

    //controls
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[segment]-|",
        options: NSLayoutFormatOptions.AlignAllCenterX,
        metrics: nil,
        views: viewsDict))

    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[segment]",
        options: NSLayoutFormatOptions(0),
        metrics: nil,
        views: viewsDict))
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-23 22:16:12

您的顶部空间垂直约束必须与您的顶部布局指南,而不是您的集装箱边缘。以下代码应修复此问题:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()

    let segmentControl = UISegmentedControl(items:["blash", "blah blah"])
    segmentControl.selectedSegmentIndex = 1

    segmentControl.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.view.addSubview(segmentControl)

    //Horizontal constraints
    view.addConstraint(NSLayoutConstraint(item: segmentControl, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.topLayoutGuide, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 10))

    //Horizontal constraints
    let viewsDict = ["segment" : segmentControl]

    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[segment]-|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDict))
}

请注意,水平约束设置也已被重写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25465856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档