2017-12-27 61 views
1

내부 tavleview와 containerview가있는 ScrollView의 크기를 조정 :IOS 내가보기 다음 구조를 가지고

vc 
-view 
--safe area 
--scrollview 
---view 
----containerview1 
----containerview2 
----containerview3 
-----tableviewcontroller(in containervew3) 

Tableviewcontroller 행을 추가하거나 제거 버튼, 나는에 스크롤하지 않고는 (전체의 tableview의 내용을 보여줍니다 것을 스크롤 뷰의 크기를 조정하려면있다 테이블 뷰). 나는 같은 해결책을 시도 : here 또는 Sizing a Container View with a controller of dynamic size inside a scrollview하지만 성공하지. 나는 iOS 10.0을 사용한다. & swift

답변

0

우선은 제약이다. 당신은 UIScrollView 및 컨테이너의 전망과 함께 적절한 제약 조건이 있어야합니다

당신이 필요로하는 다음 일은 tableviewController의 높이 제한 (뭔가 문제가 발생하면 제약을 휴식 결코 있도록 750 우선 순위가 동일한보다 큰 관계로 0에 높이를 줄 수 있습니다)

입니다

데이터 삽입/삭제가 발생할 때 해당 높이 제한의 IBOutlet을 가져 와서 콘텐츠 크기가 변경되고 해당 콘텐츠 높이를 IBOutlet 제약 조건에 적용하고 layoutIfNeeded를 잊어 버리지 않습니다.

거짓

로있는 tableview 스크롤 바운스 높이 변화에 대한 컨테이너보기를 통보 를 만들 확인

protocol ContainerTableDelegate { 
     func dataChanged(height: CGFloat) 
} 

및 높이 변화는 주요 지금 부모 뷰 컨트롤러

delegate?.dataChanged(self.heightConstraint.constant) 

을 통지 할 때 모든 컨테이너가있는 viewcontroller

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 

가의 ViewController가 대리자를 구현 self에 대리자를 설정 확인하고 컨테이너보기 3 일정의 높이를 (당신이 필요)

가이 문제를 응답

+0

감사를 해결하는 데 도움이 될 것입니다 희망 변경 구현 Prashant Tukadiya,하지만 불행하게도 컨테이너 뷰는 크기를 변경하지 않습니다. 또한 곱하기, 위임 된 작업, 제약 조건 세트, layoutIfNeeded 호출에 의해 필요한 것보다 더 크게 만들려고했습니다. 수동으로 scrollview 내용 크기를 커지도록 변경했습니다. 높이) 또한 추가하려고했습니다. tableviewController.view.translatesAutoresizingMaskIntoConstraints = false이지만 성공하지 못했습니다. –

+0

@AntonLisitsyn UIView를 만들고 높이 제한을 지정했습니다. 그보기에서 나는 컨테이너보기를 추가했다. 일부 버튼에서 높이 제한의 상수 값을 변경하려고하므로 컨테이너보기도 변경됩니다. 그래서 그것은 작동해야합니다. –