사진,지도 및 콘텐츠를 표시하는 swift
앱을 디자인 중입니다. 모두 UITableView
헤더에 있습니다. 내가 아이폰 5에 대한 응용 프로그램을 실행하면iphone 5 및 iphone 6에서 앱을 실행하는 동안 내 구속 조건이 레이아웃을 다르게 만드는 이유는 무엇입니까?
, 그것은 다음과 같습니다
과 :
노란색 필드는 다음과 같은 제약이있는 텍스트이다 :
이것은 내가 아이폰 6를 실행하면, 내가 볼, 그러나 아이폰 5에 잘 보이는 : 그 두 가지 견해가 다른 이유
내가 이해가 안 돼요. 기본적으로 데이터 헤더보기를 (예를 들어, 사용자 이름, 텍스트, 사진을 채운다) 웁니다
defineHeaderView()
:
지금, 내 코드에서, viewDidLoad()
에서 나는 방법에 대한 요구가있다. 보기를 않는 이유
당신이 날 설명 할 수 다음 storyboard
에서
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
func sizeHeaderToFit() {
let headerView = myTable.tableHeaderView!
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
myTable.tableHeaderView = headerView
}
내가 UITableView
내부보기로 headerview을 정의
은 또한 코드 블록을 두 화면에서 다릅니 까?
더 나은 통찰력을 제공하기 위해, 여기에 다른 제약 조건은 다음과 같습니다
가지도 : 여기
과 배경 사진 :
가있다 다음 제약 조건 :
난 당신의 imageViews에 문제가 있다고 생각합니다. iPhone 5 화면이 더 얇아지고 이미지와 구속 조건의 크기에 따라 (그리고 clipSubviews가 true/false로 설정된 경우) 이미지가 매우 다르게 보입니다. – PeejWeej
다른 장치에서 뷰 계층을 디버깅하여 실제 프레임/제약 조건이 무엇인지 확인해야합니다. – PeejWeej
뷰 이름 및 기타 제약 조건에 대한 정보가 충분하지 않습니다.이것은 단지 가정입니다. 보기 높이 (노란색 중 하나)의 제약 조건은 "더 크거나 같음"과 관련이 있습니다. 두 번째 제약 조건에 따르면 뷰의 윗부분은 부모 상위 644 포인트 아래에 있어야합니다. 정적 값입니다. 따라서 서로 다른 크기 (높이)를 가진 장치의 경우보기가 신장됩니다. –