2014-11-07 1 views
3

볼 나는 UIView의 서브 클래스 : http://pastebin.com/MVk1XmPS를하고 난의 UIViewController의 다른보기에 추가 할 때 :서브 클래 싱 된 UIView의 보이지 않는, 그러나 내용이

self.myView = MyView.newAutoLayoutView() 
self.myView.backgroundColor = UIColor.redColor() 
self.view.addSubview(self.myView) 

빨간색 배경이 없습니다. myView에는 너비와 높이가없는 것 같습니다. 그러나 내용을 볼 수 있습니다 :

foto 07 11 14 23 12 36

나는 하드 코딩 차원이 있습니다

self.myView.autoSetDimensionsToSize(CGSize(width: 100, height: 100)) 

를하지만 콘텐츠의 크기에 의해 자동으로 성장하지 않겠습니까? 신속한 xcode6.1 및 iOS8.1을 사용합니다.

답변

2

조회수가 콘텐츠에 맞게 자동으로 증가하지 않습니다. 보기에서 clipsToBounds을 사용하면 콘텐츠가 사라집니다. 또는 콘텐츠의 일부로 버튼을 놓으면 버튼을 볼 수는 있지만 해당 버튼이 superview의 경계를 벗어 났기 때문에 버튼과 상호 작용할 수 없습니다.

하위 클래스에서 sizeToFit 또는 sizeThatFits: 메쏘드를 구현할 수 있지만 시스템에 의해 자동으로 호출되지는 않습니다. 스토리 보드에서보기에 대한 제약 조건을 할당하는 것을 고려해야합니다. 스토리 보드를 사용하지 않는 경우 viewWillLayoutSubviews 또는 layoutSubviews 방법으로 프레임을 지정해야합니다.

intrinsicContentSize을 구현하면 스토리 보드에서 사용자 정의보기를 더 좋아합니다.

+1

+1 intrinsicContentSize를 구현해 주셔서 감사합니다. –