0

VFL (Visual Formatting Language) を使用して、次のレイアウトでビューを作成しようとしています。

--------------------------------------------------
| | [左図] [中央図] [右図]|
--------------------------------------------------

しかし、それはこのように表示されています

--------------------------------------------------
| | [左図] [右図]|
--------------------------------------------------

問題はこの行にあると思います

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)
    )
4

1 に答える 1

0

あなたのコードは問題ないようです。あなたが説明する現象から、中央のビューは見えません。これにはいくつかの理由が考えられます。

  • コンテンツはありません。
  • hiddenプロパティをどこかに設定します。
  • alphaプロパティをゼロに設定しました。
  • でレイアウトを上書きしていますlayoutSubviews
  • ラベルのテキストは背景と同じ色です。

他の多くの理由と同様に... とにかく、それはこの VFL のラインではありません。

于 2016-01-27T21:36:42.430 に答える