0
import UIKit
import SnapKit

class RecordButton: UIView {
     let box = UIView()
     let container = UIView()

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

    func setup() {
         container.snp_makeConstraints { (make) -> Void in
         make.width.equalTo(200)
         make.height.equalTo(200)
         make.center.equalTo(self.container)
         }
    box.snp_makeConstraints { (make) -> Void in
        make.top.equalTo(container).offset(50)
        make.left.equalTo(container).offset(50)
        make.bottom.equalTo(container).offset(-50)
        make.right.equalTo(container).offset(-50)
        make.center.equalTo(container)
    }
    self.addSubview(container)
    container.addSubview(box)
    setColor()

    }
    func setColor() {
         self.container.backgroundColor = UIColor.blackColor()
         self.box.backgroundColor = UIColor.orangeColor()
    }

}

このエラーが表示されるのはなぜですか? これを実行する他の方法はありますか?なにか提案を?。center.equalTo はこのエラーを作成します。私はswiftが初めてで、SnapKitフレームワークを実装しようとしています

4

1 に答える 1

2

つまり、ビューまたはコントローラーは共通のビューにある必要があります。たとえば、X と Y という 2 つのボタンを持つビュー A があり、ビュー B には 2 つのボタン P と K がある場合、ビュー A に関してではなく、そのスーパー ビュー B に関して P と K の制約を設定できます。

複数のスーパー ビューがある場合は、すべてのスーパー ビューに適切な制約を与えていることを確認してください。エンドポイント ビューの制約のみが満たされます。

うおだて:

最初にコンテナーにボックスを追加し、そのスーパービューにコンテナーを追加してから、制約を設定します。self.containerそして、あなたcontainerがそれぞれ中心container viewにいることを確認してくださいbox view。設定している場合はtop,bottom,leading and trailing、中心も設定する必要はありません!

これが役立つことを願っています:)

于 2016-07-15T06:34:56.157 に答える