2016-07-15 111 views
0

我的NavigationBarItems有一个奇怪的问题。第一次应用程序启动后(应用程序未在后台运行时),BarButton被错置(请参阅屏幕截图1)。按钮标题应该是“PDF”。NavigationBarItem在第一次应用程序启动时放错位置

Screenshot 1

然而,当我按下home键,然后再次打开该应用程序(与背景),位置是正确的(截图2)。

Screenshot 2

我不能找出问题是什么。我使用自定义titleview的导航栏,它看起来像这样:

class TitleView : UIView { 
    var titleLabel:UILabel! 

    init(title:String) { 
     super.init(frame: CGRect(x: 0, y: 0, width: 200, height: 44)) 

     titleLabel = UILabel() 
     titleLabel.textAlignment = .Center 
     titleLabel.font = UIFont.normalFont(15) 
     titleLabel.text = title.uppercaseString 
     titleLabel.textColor = UIColor.primaryColor() 
     self.addSubview(titleLabel) 

     titleLabel.snp_makeConstraints { (make) -> Void in 
      make.edges.equalTo(self.snp_edges) 
     } 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

extension UIViewController { 
    func setTitleView(title:String) { 
     self.navigationItem.titleView = TitleView(title: title) 
     self.view.backgroundColor = UIColor.whiteColor() 
    } 

而且我初始化viewDidLoad中的navigationTitle和项目如下:

self.setTitleView("Tanzkarte") 
let sendDanceCardButton = UIBarButtonItem(title: "PDF", style: .Plain, target: self, action: #selector(DanceCardController.sendDanceCard)) 
self.navigationItem.rightBarButtonItem = sendDanceCardButton 

我didn`t找到任何解决方案在互联网的问题,并希望你的人有一个解决方案。

编辑:自定义标题视图不是问题。即使我不使用任何导航栏的标题,按钮也放错了位置。

回答

0

您的标题视图使用明确的宽度进行初始化,该宽度可能会超过导航栏允许的最大宽度。尝试初始化为零大小,并在初始化后调用sizeToFit()

+0

好主意,但它并没有解决问题 –

+0

似乎不像titleView是问题,因为问题依然存在,当我根本不初始化titleView。 (更新的问题) –

+0

在哪种回调方法中,您是否设置了正确的酒吧项目? – Fujia

相关问题