2017-11-01 10 views
0

이것은 내가 아는 광범위한 질문이며, 기본적으로이 질문을하는 이유는 무엇인지 모르기 때문입니다. 내가 당면한 과제는 한 번에 여러 목적에 맞는 하나의 일반적인 tableViewCell을 만들고 해당 셀의 레이아웃이 입력에 따라 변경되는 것입니다. 우선, 모든 셀은 헤더, 텍스트 본문, 단일 이미지 또는 다중 이미지, 데이터 컬렉션 (UITableViewCell의 UICollectionView에 표시됨)을 가질 수 있어야합니다. 아이디어는 사용자가 섹션을 만들 수 있다는 것이며 이러한 섹션은 유형이 없으므로이 일반 UITableViewCell에서 올바른 셀을 만드는 것입니다.일반 UITableViewCell 스위프트 만들기

예가 될 수 있습니다. 사용자는 두 섹션을 만듭니다. 1.Section 사용자는 머리글과 본문을 만들고 더 이상 만들지 않습니다. 2. 사용자가 몸과 여러 이미지를 생성 섹션. 섹션 1의 경우 셀은 헤더와 본문으로 구성되고 나머지는 무시하면됩니다. 섹션 2에서는 신체와 이미지가 있습니다. 어떻게이 행동을 만들려고하십니까? 나는 제약 조건과 함께 스토리 보드를 사용했지만, 헤더를 숨기더라도 UIElement는 여전히 존재하고 헤더 제약 조건 아래에있는 바디는 섹션 2의 경우 UIElement에 여전히 첨부되어있다. 대신에 셀의 꼭대기. 이것이 광범위하거나 아이디어가 충분히 명확하게 시각화되지 않는다면 다시 말해달라고 부탁하십시오.

답변

1

스택 뷰를 살펴보십시오. 또는 사용하지 않으려는 경우 간단한 트릭을 수행합니다.

우선 순위가 1 인 맨 위에 제약 조건 하나를 만듭니다. 우선 순위가 500 인 하위 항목에 머리글 하단에 하나의 제약 조건을 추가합니다. 우선 순위가 1 인 제약 조건의 콘센트를 만듭니다. 헤더 제목이 설정 될 때마다 비어 있는지 확인합니다. 그렇다면 제한 조건의 우선 순위를 999로 설정하십시오. 그렇지 않으면 1을 설정하십시오.

하나의 요소에는 사용할 수 있지만 여러 요소가있는 경우 stackview를 사용하는 것이 좋습니다.

+0

좋은 답변입니다. 나는 이것을 시도하고 구현할 것이다. 그러나 stackview 들어, 스토리 보드에이 스택 뷰에 모든 요소를 ​​추가 할 것이라고? 그렇다면 다른 사람들이 머무르는 동안 일부 요소 무시에 어떻게 대처합니까? –

+0

스택보기에서 요소를 시각적으로 제거하려면 해당 요소를 숨기 만하면됩니다. 자동으로 높이가 0으로 설정됩니다. 패딩이있는 요소가있을 때 조심하십시오. 패딩 제약 조건을 우선 순위 999로 설정해야합니다. 그렇지 않으면 강제 제약 조건 경고가 표시됩니다. – Luzo

+0

안녕하세요 @ 루조 나는 마침내 그것에게 일하게했다!! 대단히 고마워, 내가 귀하의 답변을 광고에 표시하고 그것을 투표. 다른 사람들을 위해 나는 stackview를 추천하고 나는이 튜토리얼을 따르고 나는 크게 추천 할 수있다 : https://www.raywenderlich.com/160646/uistackview-tutorial-introducing-stack-views-2 –

0

어쨌든 사용자 소스를 어떻게 든 정의 할 수 있습니까? 그렇습니다. 따라서 UI 동작을 완전히 정의 할 수있는 Model 구조체가 있습니다. 유효 필드의 조합과 그 표현 방법을 알고 있으면 여기에 아무런 문제가 없습니다. 네, UI가 쉽지 않을 수도 있지만 100 % 정의 될 것입니다