문제

저는 Xcode 6.0 베타 4를 사용하고 있습니다. UICollectionViewCell 탭에 응답하지 않습니다.

세부정보:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton 두 개가 있다 autolayout 넣어야 한다는 제약 UIButton 수직 중앙과 수평 중앙에 Cell )

이제 cell 크기는 다음과 같습니다.(300, 1000)

iPhone 시뮬레이터 또는 iOS 7.0 또는 7.1.x가 설치된 장치에서 앱을 실행하면 버튼을 터치할 수 없지만 iOS 8.0 시뮬레이터에서 테스트하면 괜찮습니다.또한 셀을 변경하면 size 에게 (300, 200), 버튼이 작동합니다.

이번 Xcode 베타 버전의 버그인 것 같은데요?

그리고 Apple에 버그를 어디로 보낼 수 있나요?

도움이 되었습니까?

해결책

UICollectionViewCell의 contentView에 대해 자동 크기 조정 마스크를 설정하는 것을 잊었습니다.

이것으로 해결해

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

다른 팁

이는 실제로 버그가 아니라 Xcode 6을 사용하는 iOS 7 장치를 대상으로 하는 비호환 문제인 것으로 보입니다. 에코택스의 게시물 이에 대해 더 자세히 설명하고 있지만 Apple DTS의 응답은 다음과 같습니다.

iOS 7에서는 자동 크기 조정 마스크를 통해 셀의 콘텐츠 보기 크기가 조정되었습니다.iOS 8에서는 이것이 변경되어 셀이 자동 크기 조정 마스크를 사용하는 것을 중단하고layoutSubviews에서 콘텐츠 보기의 크기를 조정하기 시작했습니다.펜촉이 iOS 8에서 인코딩된 다음 iOS 7에서 디코딩되면 자동 크기 조정 마스크가 없고 크기를 자체적으로 조정할 수 있는 다른 수단도 없는 콘텐츠 뷰를 갖게 됩니다.따라서 셀의 프레임을 변경하면 콘텐츠 뷰가 따르지 않습니다.

iOS 7에 다시 배포되는 앱은 콘텐츠 보기 자체의 크기를 조정하거나, 자동 크기 조정 마스크를 추가하거나, 제약 조건을 추가하여 이 문제를 해결해야 합니다.

위의 Alexey 솔루션은 트릭을 수행합니다.

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top