2017-10-25 2 views
1

저는 Injection Live Rendering 및 Snapkit을 사용하고 있습니다. 프로젝트를 저장하고 제약 조건을 변경할 때마다 프로젝트를 렌더링 할 수 있으므로 Xcode 콘솔에서 기호 브레이크 포인트 (UIViewAlertForUnsatisfiableConstraints)를 만들어야합니다. 하지만 라이브 렌더링을 사용하지 않고 프로젝트를 만들 때 (그냥 빌드 버튼을 누르면) 올바르게 표시됩니다.Snapkit 및 Xcode 삽입

class ViewController: UIViewController { 

let leftView = UIView() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    view.addSubview(leftView) 
    makeLeftView() 
} 

func makeLeftView() { 
    leftView.snp.makeConstraints { (make) in 
     make.left.equalTo(view.snp.left).offset(10) 
     make.top.equalTo(view.snp.top).offset(10) 
    } 
    leftView.frame.size = CGSize(width: 50, height: 50) 
    leftView.backgroundColor = UIColor.green 
} 

@objc func injected() { 
    makeLeftView() 
} 
} 

이 문제의 원인은 무엇입니까? 제약은 이상한 방법으로 다시로드되고 있습니까?

답변

0

당신은

leftView.snp.makeConstraints { (make) in 
    make.left.equalTo(view.snp.left).offset(10) 
    make.top.equalTo(view.snp.top).offset(10) 
    make.width.equalTo(50) 
    make.height.equalTo(50) 
} 

하는 w 당신의 세트 FRAMESIZE에 시간 직접 모호한 레이아웃은 레이아웃에 발생하게됩니다 당신의 leftView의 대신 설정 makeConstraints 폐쇄의 폭과 높이 프레임 크기를 설정하려고 할 수 있습니다.

+0

두 경우 모두 시도했습니다. 아무것도 도움이되지 않습니다. – Magnifique