2016-12-26 2 views
2

텍스트 필드의 배열을 포함하는 Stackview가 scrollview에 포함됩니다. 일부 작업에서 텍스트 필드의 순서를 변경하고 싶습니다. 텍스트 필드를 제거하고 추가하는 방법은 왜곡 된보기를 만듭니다. 나는 또한 scrollview에서 제거하여 테스트했습니다. 일반 stackview도 교환이 제대로 나타나지 않습니다. 나는 변경하는 인덱스를 사용하고 있습니다 :Stackview 교환 또는보기 순서 변경


stackView.removeArrangedSubview(localityTF) stackView.insertArrangedSubview(localityTF, at: 2)

답변

5

그것은 당신이 다시 localityTF를 추가하기 전에 업데이트해야 자동 레이아웃 시스템, 이상한 행동,하지만 문제.

[self.stackView removeArrangedSubview:_label1]; 
[self.stackView setNeedsLayout]; 
[self.stackView layoutIfNeeded]; 

[self.stackView insertArrangedSubview:_label1 atIndex:2]; 
[self.stackView setNeedsLayout]; 
+0

감사 톤 : 또한 removeArrangedSubview가 파단 배열에서보기를 제거하지 않는다는 것을 잊지 마세요. 훌륭하게 작동합니다. 호기심 많은 사람들 사이에서 어떻게이 솔루션을 찾아 냈습니까? @ Andrew –

+1

그럼 제거하고 하위 뷰를 첨부 해 보았습니다. 제약 조건에 대한 예외가있었습니다 (뷰를 다시 첨부했습니다). 제약 조건을 변경하면 Autolayout 엔진에 레이아웃이 필요하다는 것을 알고 있습니다. 그 후 레이아웃 호출을 추가하려고 시도했지만 모두 수정되었습니다. –