2016-10-11 6 views
1

안드로이드에서 자동 완성 텍스트 뷰와 같은 것을 만들고 싶습니다. 즉, 오버레이 뷰에서 테이블 뷰를 검색하여 결과를 표시합니다. 그렇게하기 위해 테이블 ​​뷰가 포함 된 뷰 (특정 배경을 보여줘야 함)를 만들었습니다. 그 잘 작동하지만 tableview 1 행이있을 때 tableview 해당 높이의 크기를 조정하지 않습니다.신속한 마지막 테이블 뷰로 테이블 뷰 크기 조정

제가

tableView.tableFooterView = UIView() 

물품 만했지만 높이를 변경하지 않는 세퍼레이터의 과잉을 억제.

제발 도와 주실 수 있나요?

enter image description hereenter image description here

+0

화면을 보여주세요 –

답변

0

는 수동으로있는 tableView의 프레임을 업데이트해야합니다. 당신이 자동 레이아웃 사용하는 경우 이있는 tableView의 높이 함께 IBOutlet을 추가

@IBOutlet weak var heightConstraint: NSLayoutConstraint! 

나는있는 tableView의 높이를 몇 가지 고정 된 값으로 제한됩니다 가정합니다. 화면 높이에 따라 다르면 maxTableViewHeight을 계산 된 변수로 바꿉니다.

let maxTableViewHeight = CGFloat(300) 

tableView의 높이를 업데이트하는 방법을 만듭니다. 그것은 확실히있는 tableView가 콘텐츠 높이의 maxHeight 다음 작의 경우 크기가 조정되어 있는지 확인합니다 :

func updateTableViewFrame() { 
    autocompleteTableView.layoutIfNeeded() //to make sure you have updated contentSize 
    let height = autocompleteTableView.contentSize.height 
    heightConstraint.constant = min(height, maxTableViewHeight) 
    view.layoutIfNeeded() 
} 

지금 당신이해야 할 모든이 방법 때마다 데이터 소스 업데이트를 호출하는 것입니다. 귀하의 경우이 값은 사용자의 입력 값을 변경해야합니다.

+0

답변 해 주셔서 감사합니다. 비슷한 것을 찾았지만 실제로는 작동하지 않습니다. 문제는 다시로드 한 후에 테이블 뷰의 실제 크기를 결정하는 것이 었습니다. –

+0

어쨌든, 나는 할 방법을 변경하고 완전히 "자동 완성 텍스트보기" –

관련 문제