2017-01-19 2 views
1

autolayout을 배우려고하지만 한 지점에서 멈추었습니다.Xcode 7.3의 UILabels에 Autolayout 적용

이것은 내가 달성하고 싶은 것입니다. 저는 사용자 정의 tableView 셀에 imageView와 3 개의 레이블과 버튼이 있습니다.

enter image description here

나는 그들의 압축 저항의 우선 순위와 포옹의 우선 순위를 변경 시도했지만 실패했다. 그래서 누군가 나를 안내해 주셔서 어떻게 제가이 일을 할 수 있습니까?

답변

0

레이블을 고정 된 크기 (numberOfLines! = 0)로 설정하면 텍스트 내용이 맞지 않을 경우 ...가 자동으로 표시됩니다.

뷰 레이아웃을 빌드하려면 스태킹 뷰를 허용하고 자동 레이아웃을 관리 할 수있는 새로운 (iOS 9 기준) UIStackView를보십시오.

요구 사항에 대한 한 가지 가능한 접근 방법은 UIStackView 내부에 세 개의 레이블을 넣는 것입니다. 그런 다음 자동 레이아웃 제약 조건을 사용하여 UIStackView, 버튼 및 이미지를 정렬합니다. 시각적 언어를 사용

: H : 당신이 당신의 라벨의 크기를 제어 할 수 있도록 UIStackView 몇 가지 고정 된 폭 및/또는 높이를해야 제약 조건 중 하나 [myStackView (== 280)] 또는

theView.addConstraint(NSLayoutConstraint(item: myStackView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.width, multiplier: 1, constant: 280)) 

여기 샘플 프로그래밍 UIStackView을 만들기위한 코드와 애플의 문서에 대한 링크입니다 : https://developer.apple.com/reference/uikit/uistackview

샘플 코드는, 수평 스택을 중심으로 두 개의 레이블을 가지고 있으며, 동일한 크기, (40)에 의해 분리 당신은 수직으로 라벨을 스택 할 것입니다.

let stackView = UIStackView(arrangedSubviews: [negativeResponseButton, positiveResponseButton]) 
stackView.axis = .horizontal 
stackView.distribution = .fillEqually 
stackView.alignment = .center 
stackView.spacing = 40