2016-09-07 1 views
0

내가 여기에 더 나은 내 질문을 설명하기 위해이 질문에 대한 설정을 테스트 프로젝트 (project here)을했지만, 내가 직면하고있어 핵심 문제입니다 a UIScrollView이고, 이것 모두는 AutoLayout으로 레이아웃되어 있습니다. 내 초기 레이아웃은 훌륭하게 작동하며 초기 레이아웃 제약 조건에 따라 원하는대로 컨텐츠보기에 맞도록 잘립니다. 지금까지는 모두 좋았습니다.autolayout이있는 작업에서 UIScrollView의 내용 크기가 자동으로 증가하는 방법은 무엇입니까? 나는 그 자체 안에 중첩 된 콘텐츠 <code>UIView</code> 내에서 중첩 된 <code>UILabel</code>이</p> <p>:

이제 레이블에 "펼치기"동작을 추가하려고 할 때 문제가 있습니다. 콘텐츠보기의 탭으로 더 이상 잘라내지지 않도록 라벨을 확장해야하고 contentView의 경계 내에서 잘라내는 대신 scrollViewcontentSize을 전체 라벨의 텍스트를 스크롤 할 수 있도록 늘리 길 원합니다. 어떻게해야합니까?

샘플 프로젝트에서 컨텐트보기의 탭은 scrollView의 제약 조건을 조정하여 레이블의 작업 공간이 달라 졌음을 보여줍니다. 나는 이제 scrollView을 다시 계산하여 contentSize이라는 레이블을 더 이상 자르지 않게하는 방법을 고수했다.

I 콘텐츠 압축 우선 순위로 연주 해봤 및 그 동작에 따라 수행과 같이되고 변경 :

theLabel.setContentCompressionResistancePriority(UILayoutPriorityRequired, forAxis: .Vertical) 

그러나 실제로 레이블을하지 않을 것을 강제하지 않는 것 잘라 버린다. 나는 또한 탭 동작에서 scrollView의 본질적인 콘텐츠 크기를 무효화하려했지만 아무 소용이 없습니다. 라벨을 잘라야하는지 여부를 어떻게 전환합니까?

답변

1

일반적으로 레이블 높이 또는보기 높이를 최소 높이로 고정하는 제한 조건이 있으며 확장하려는 경우 비활성화 (비활성화)하고보기를 레이아웃합니다. 제약 조건을 다시 활성화하고 뷰를 레이아웃하려면 압축을가하십시오.

+0

내 질문에 어떻게 대답하는지 잘 모르겠습니다. 확장시 최소 높이 제약 조건을 사용할 수 없도록 설정하면 스크롤 뷰의 내용 크기가 잘리지 않으면 레이블 높이와 일치하도록 문제가 해결되는 방법을 여전히 알 수 없습니다. 상위 광고 항목보기와 함께 라벨 크기를 성공적으로 확장하고 있는데 라벨을 자르지 않도록하려면 어떻게해야합니까? 전체 높이를 수동으로 계산하고 제약 조건을 설정하는 것이 좋습니다. – BHendricks

+0

아니요, 레이블에 본질적인 콘텐츠 크기가 있습니다. 최소 높이 제약 조건은이를 재정의하거나 적용하도록 허용합니다. 뷰를 스크롤 뷰의 가장자리와 너비에 고정한 경우 제약 조건 변경 후 뷰를 레이아웃하면 내용 크기가 업데이트됩니다. – Wain

+0

아직도 내 질문에 어떻게 대답하고 있는지 확실하지 않습니다. 내 'UILabel'은 처음에는 접힌 상태에서 상단/왼쪽/오른쪽/아래 제약 조건 세트를 통해 콘텐츠보기로 크기가 조정됩니다. 콘텐츠 뷰의 부모 (scrollview)의 제약 조건을 "확장"으로 업데이트하면 레이블이 콘텐츠 크기를 업데이트하지 않는다는 문제가 발생합니다.이 문제에 대한 답변을 보려면 정말 고심하고 있습니다. 질문 : – BHendricks

관련 문제