2017-04-08 1 views
-3

view 오른쪽 모서리에 코드에서 하나의 단추를 추가하는 데 어려움을 겪고 있습니다. 누군가가 왼쪽 구속 조건을 설정하지 않고 어떻게 할 수 있습니까? 이것은 왼쪽 상단에 V:|-10-[v0], H:|-10-[v0] 무엇이 그것의 반전 것입니까? 나는 이것을 시도했다 : V:[v0]-10-|, H:[v0]-0-|하지만 생각처럼 작동하지 않는다.오른쪽 상단 제약 형식

미리 감사드립니다!

+0

저는 앵커로 대신 작업하면서 VFL (sic?)을 사용하지 않습니다. 그러나 당신의 "좌상"구속 조건을 보면서, 당신은 그 일을 확신합니까? * v0 *이 단추라고 가정하면 단추의 왼쪽과 오른쪽에 10 개의 여백이 있으며 세로로 여백이 없습니다. – dfd

+0

@dfd가 잘못 입력되었지만 여전히이 설정으로 작동하고 있습니다. – yerpy

+0

확인. 나는 교정을보고, 나는 VFL을 읽는 법을 아직도 기억하고있다. :-) 나는 당신의 "오른쪽"핀을 * bottom *이 아닌 * top *이되도록 읽었다. 또한 가로에 유형이 있거나 오른쪽 가장자리에 여백없이 원하는 유형이 있습니다. 너 정확히 뭘보고있어? – dfd

답변

1

의견을 바탕으로 오른쪽 상단에 UIButton을 배치하는 방법에 대한 두 가지 대답을 제공하고자합니다.

VFL :

귀하의 수직 핀이 오른쪽 하단이 아닌 상단입니다. V:[v0]-10-| 대신 "파이프"문자 (화면의 경계를 지정 함)가 끝에 있으며 처음에 숫자를 배치하십시오 (|-10-[v0]).

버튼에 특정 높이/너비를 지정했다면 - "왼쪽 상단"이 작동하는 코드로 생각됩니다 - 문제가 해결되어야합니다. iOS9에 도입

앵커 (레이아웃 가이드와 함께) 레이아웃 앵커는 자동 레이아웃을 코딩하는 세 번째 방법이다. NSLayoutConstraints처럼 VFL보다 덜 시각적입니다. 그러나 NSLayoutConstraints과 달리 덜 모호합니다. 따라서 더 "빠른"IMHO입니다.

왼쪽 상단에 UIButton을 고정하려면 높이, 너비 및 X/Y 위치의 네 가지 자동 레이아웃을 지정해야합니다.

// declare your button 
let v0 = UIButton() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // remember, you ALWAYS need to turn of the auto resize mask! 
    v0.translatesAutoresizingMaskIntoConstraints = false 

    view.addSubview(v0) 

    // create a square button 
    v0.widthAnchor.constraint(equalToConstant: 100.0)   
    v0.heightAnchor.constraint(equalToConstant: 100.0) 

    // pin the button 10 points from the left side of the view 
    v0.leadingAnchor.constraint(equalTo: v0.leadingAnchor, constant: 10)   

    // here's how you would pin the button 10 points from the right side of the view 
    // note the use of a negative here! 
    // v0.trailingAnchor.constraint(equalTo: v0.trailingAnchor, constant: -10)   

    // pin the button 10 points from the top of the view 
    v0.topAnchor.constraint(equalTo: v0.topAnchor, constant: 10) 

} 

NSLayoutConstraints처럼 레이아웃 앵커는 제약 조건의 이름을 선언 할 경우 변경 될 수 있습니다 상수 및 배율을 가지고있다.

일부 좋은 "적응 레이아웃"의 경우 NSLayoutConstraintsNSLayoutGuides을 결합 할 수 있습니다. 이 안내선은 오버 헤드를 제외하고는 "간극/보이지 않는"UIView처럼 작동합니다. 이는보기가 아닙니다. Apple의 "표준"여백 (UIView.layoutMarginsGuide)을 가져 오거나 같은 크기의 동적 안내선 세트를 만들어 균등하게 배치 할 수 있습니다.

layout anchorslayout guides에 관한 두 개의 블로그가 있습니다. 예 2는 스위프트 2로 작성되었지만 스위프트 3에는 구문 변경이 없습니다.

관련 문제