0
프로그래밍 방식으로 제약 조건을 도울 수 있는지 궁금합니다. 내가 원하는 것은 :버튼 겹침을 방지하기 위해 프로그래밍 방식으로 제약 조건을 추가하십시오. SWIFT 4
나는 루프 안에 버튼을 만들고 버튼은 서로 옆에 수평으로 정렬되어있다. 일부 단추는 너비가 다르기 때문에 단추가 다른 단추와 겹칠 수 있습니다. 중첩을 방지하고 그 사이에 공백을 추가하기 위해 제약 조건을 사용할 수 있습니까?
사전
에서덕분 코드 :
for (j, _) in buttonInfo.enumerated(){
let button: UIButton = buttonArray[j]
let stackView = UIStackView();
stackView.spacing = 30;
button.tag = Int((buttonInfo[j]?.pID)!)!
button.setTitle(buttonInfo[j]?.title, for: .normal)
button.addTarget(self, action: #selector(PalletViewController.productCall), for: .touchUpInside)
let stock = Int(buttonInfo[j]!.stock)
if(stock! == 0 || stock! < 0){
button.isHidden = true;
}
let views = ["view": view, "button": button] as [String : Any]
let spacing = NSLayoutConstraint.constraints(withVisualFormat: "H:|-(10)-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views);
view.addConstraints(spacing);
}
당신은, 당신이이 버튼을 추가 할 수 있습니다 루프에서 제약 조건을 추가하지 마십시오된다 [UIStackView] (https://developer.apple.com/documentation/uikit/uistackview) – Wez
제안을 살펴한다 사전을 반복하면서 루프가 끝나면이 [NSLayoutConstraint constraintsWithVisualFormat : @ "H : | - [버튼] - (5) - [버튼] - (5) - [버튼] 옵션 : 0 metrics : nil views : nil];'버튼의 부모보기로 마침내이 버튼은 공백을 얻습니다. "5"또는 원하는 것 –
@VictorJohn 안녕하세요,이 코드를 사용할 때 다음과 같은 오류가 발생합니다. 'let views = [ "view":보기]; NSLayoutConstraint.constraints (withVisualFormat : "H : | - [버튼] - (5) - [버튼] - (5) - [버튼] - |"옵션 : NSLayoutFormatOptions (rawValue : 0), 메트릭 : 보기 :보기)''이유 : 제약 형식을 구문 분석 할 수 없습니다 : 빈 문자열입니다. ' – LifeOS