프로그래밍 방식으로 자동 레이아웃 제약 조건을 사용하여 사용자 지정 UITableView 셀을 레이아웃하고 있으며 셀 크기를 올바르게 정의하고 있습니다. tableView:heightForRowAtIndexPath:
iOS6에서 잘 작동 하고 iOS7에서도 잘 보입니다.
하지만 iOS7에서 앱을 실행할 때 콘솔에 표시되는 메시지는 다음과 같습니다.
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-10-02 09:56:44.847 Vente-Exclusive[76306:a0b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0xac4c5f0 V:|-(15)-[UIImageView:0xac47f50] (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSLayoutConstraint:0xac43620 V:[UIImageView:0xac47f50(62)]>",
"<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>",
"<NSLayoutConstraint:0xac43680 V:[UIView:0xac4d0f0(1)]>",
"<NSLayoutConstraint:0xac436b0 V:[UIView:0xac4d0f0]-(0)-| (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>
그리고 실제로 그 목록에 내가 원하지 않는 제약 조건 중 하나가 있습니다.
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
의 translatesAutoresizingMaskIntoConstraints
속성 contentView
을 NO =>로 설정할 수 없으므로 전체 셀이 엉망이 될 것입니다.
44는 기본 셀 높이이지만 테이블 뷰 델리게이트에서 사용자 지정 높이를 정의했는데 왜 셀 contentView에이 제약이 있습니까? 원인은 무엇입니까?
iOS6에서는 발생하지 않으며 iOS6 및 iOS7 모두에서 모든 것이 잘 보입니다.
내 코드는 꽤 커서 여기에 게시하지 않겠지 만 필요한 경우 언제든지 pastebin을 요청하십시오.
수행 방법을 지정하려면 셀 초기화에서 :
- 모든 레이블, 버튼 등을 만듭니다.
- 나는 그들의
translatesAutoresizingMaskIntoConstraints
속성을 NO로 설정했습니다. - 나는 그들을
contentView
셀의 하위보기로 추가합니다. - 나는에 제약을 추가합니다
contentView
나는 이것이 왜 iOS7에서만 발생하는지 이해하는 데 깊은 관심이 있습니다.