stackView 조회수 사라지는 :스위프트 : 내 메인 스토리 보드에 비교적 간단한 세트를 가지고
- 세보기
- 첫번째 관점은 고정 된 높이를 가진다 포함 세그먼트 제어부를 포함하는 스택보기
- 다른 두 개의 뷰는 생각은 한 번에 하나만 활성화 될 따라서 사용할 수있는 공간
내가 변화보기 행위를 처리하는 코드를 채울 것 인, 제한이 없습니다 다음과 같은 의견을 필자 : '먼저'라는 탭을 선택하면
import Foundation
import UIKit
class ViewController : UIViewController {
@IBOutlet weak var stackView: UIStackView!
@IBOutlet weak var segmentController: UISegmentedControl!
@IBAction func SegmentClicked(_ sender: AnyObject) {
updateView(segment: sender.titleForSegment(at: sender.selectedSegmentIndex)!)
}
override func viewDidLoad() {
updateView(segment: "First")
}
func updateView(segment: String) {
UIView.animate(withDuration: 1) {
if(segment == "First") {
self.stackView.arrangedSubviews[1].isHidden = false
self.stackView.arrangedSubviews[2].isHidden = true
} else {
self.stackView.arrangedSubviews[1].isHidden = true
self.stackView.arrangedSubviews[2].isHidden = false
}
print("Updating views")
print("View 1 is \(self.stackView.arrangedSubviews[1].isHidden ? "hidden" : "visible")")
print("View 2 is \(self.stackView.arrangedSubviews[2].isHidden ? "hidden" : "visible")")
}
}
}
당신이 볼 수 있듯이이, 인덱스 1의 서브 뷰가 표시해야합니다 (2)가 숨겨져 동안, 그리고 무엇을 선택하면 하위 뷰에서 인덱스 2가 표시되고 1은 숨겨집니다.
천천히보기를 변경하면 처음에는 효과가있는 것처럼 보입니다.하지만 조금 더 빠르게 가면 색인 1의보기가 몇 번의 클릭 후 영구히 숨겨져 색인 0의보기가 전체 화면. 아래에 스토리 보드의 문제와 스크린 샷을 보여주는 애니메이션을 배치했습니다. 결과는 문제가 발생하면 첫 번째 세그먼트를 클릭 할 때 두보기가 모두 표시되지 않는다는 것을 나타냅니다.
아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까? 이 버그입니까, 아니면 내가해야 할 일을하지 않습니까?
미리 감사드립니다.
업데이트 : 나는 확실하게 그 순서> 첫 번째 두 번째> 세 번째> 두 번째> 첫 세그먼트로 이동하여 문제를 재현 할 수있을 것 같다.
을 제약 조건을 설정해야합니다. 그런 다음보기에 표시되지 않도록하려면 숨겨 지도록하십시오. 스택 뷰가있는 멋진 점은 스택 뷰가 숨겨 지도록 말하면 스택 뷰가 나머지 뷰에 맞게 조정됩니다. – zsteed
텍스트 "First"는 실제로 애니메이션의 맨 아래에 표시되므로 숨겨지지 않습니다. 세그먼트 컨트롤에 고정 높이 제약 조건을 설정 했습니까? – Felix
@ phix23 고정 높이는 세그먼트 컨트롤이 포함 된 스택 뷰의 첫 번째 하위 뷰에 있습니다. 높이 = 32로 설정되어 있습니다. 어쨌든 스택보기에서도 시도해 보았습니다. 그래서 그렇게 생각하지 않습니다. 또한 'print'에서 숨겨진 것으로보고되므로 명확히 숨겨져 있다고 생각합니다 (확인 전에 애니메이션이 끝날 때까지 기다릴 필요가없는 경우). – Ben