2016-01-27 3 views
0

Я пытаюсь создать представление со следующими раскладку с помощью VFL (визуального форматирования языка)Создание трех столбцов с помощью визуального форматирования языка (Swift)

 
------------------------------------------------- 
| [LeftView]  [CenterView]  [RightView]| 
------------------------------------------------- 

Но это показывает вверх, как этот

 
------------------------------------------------- 
| [LeftView]       [RightView]| 
------------------------------------------------- 

Я думаю, что проблема с этой линией

H:|-10-[cancel(70)]-[title]-[save(70)]-10-| 

Вот остальная часть кода Я не знаю, что я делаю неправильно. Вот мой код:

let headerView = UIView(frame: CGRectMake(0,0,mainFrame.width, headerHeight)) 
    headerView.backgroundColor = BG_COLOR 
    self.addSubview(headerView) 

    let cancelButton = UIButton(type: .Custom) 
    cancelButton.translatesAutoresizingMaskIntoConstraints = false 
    cancelButton.setTitle("Cancel", forState: .Normal) 
    cancelButton.addTarget(self, action: "cancelButtonClick:", forControlEvents: .TouchUpInside) 
    headerView.addSubview(cancelButton) 

    let titleLabel = UILabel() 
    titleLabel.text = "Bedroom" 
    titleLabel.textColor = UIColor.whiteColor() 
    headerView.addSubview(titleLabel) 

    let saveButton = UIButton(type: .Custom) 
    saveButton.titleLabel?.textAlignment = NSTextAlignment.Right 
    saveButton.translatesAutoresizingMaskIntoConstraints = false 
    saveButton.setTitle("Save", forState: .Normal) 
    saveButton.addTarget(self, action: "saveButtonClick:", forControlEvents: .TouchUpInside) 
    headerView.addSubview(saveButton) 

    let views = ["title":titleLabel, "cancel":cancelButton,"save":saveButton,"header":headerView] 

    headerView.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
      "V:|[save]|", 
      options:[.AlignAllCenterY], 
      metrics:nil, 
      views:views) 
    ) 

    headerView.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
      "V:|[cancel]|", 
      options:[.AlignAllCenterY], 
      metrics:nil, 
      views:views) 
    ) 

    headerView.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
      "V:|[title]|", 
      options:[.AlignAllCenterY], 
      metrics:nil, 
      views:views) 
    ) 

    headerView.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
      "H:|-10-[cancel(70)]-[title]-[save(70)]-10-|", 
      options:[.AlignAllCenterY], 
      metrics:nil, 
      views:views) 
    ) 

ответ

0

Ваш код выглядит хорошо. Из описанного явления не видно центрального вида. Это может иметь несколько причин.

  • У него нет контента.
  • Вы установили объект hidden.
  • Вы установили нулевой объект alpha.
  • Вы отменяете расположение в layoutSubviews.
  • Текст метки имеет тот же цвет, что и фон.

Как и многие другие причины ... Во всяком случае, это не эта линия ЛВЖ.

Смежные вопросы