2014-05-22 6 views
1

내 사용자 지정 셀을 표보기에서 원하는 위치에 배치하는 데 문제가 있습니다. 나는 초보자로서 이것에 대한 쉬운 해결책이 있다면 나는 놀라지 않을 것이다.표보기의 여러 사용자 지정 셀 배치

첫 번째 셀은 "하루"셀입니다. 그 중 7 개, 그 다음에 1 개의 "주"셀이 필요합니다. 그런 다음 반복하십시오.

나는 모듈을 사용하여 일주일에 8 번째 셀을 얻을 수 있다고 생각했지만 설정 될 것입니다. 불행하게도, 그것은 첫 번째 색인을 주간 세포로 만듭니다. 이는 내가 원하는 것이 아닙니다. 그래서 index.row! = 0을 다음과 같이 넣습니다 :

if (indexPath.row%8 == 0 && indexPath.row != 0) { 
     weeklyCell = [tableView dequeueReusableCellWithIdentifier:@"Week" forIndexPath:indexPath]; 
     // some code to add content to the cell 
     return weeklyCell; 
} else { 
// dayCell code 
} 

그러나 첫 번째 주 셀이 나타나기 8 일 전에 문제가 발생합니다. 그 첫 번째 주 세포가 끝나면 효과가 있습니다. 7 일 일주일 세포 등

는 기본적으로 나는

내가 할 수없는 등, dayCell, weekCell 7, dayCell에 대한 8-14, weekCell에 대한 15 0-6에서 indexPath.row 필요 이것을 다른 방법으로 모듈러로하는 방법을 알아내는 것 같습니다. 비슷한 질문 그래서 내 문제를 해결합니다.

해결책을 제공해 주시면 대단히 감사하겠습니다.

답변

2

,

if ((indexPath.row + 1) %8 == 0) { 
     weeklyCell = [tableView dequeueReusableCellWithIdentifier:@"Week" forIndexPath:indexPath]; 
     // some code to add content to the cell 
     return weeklyCell; 
} else { 
// dayCell code 
} 
+0

23 초 만에 나를 때려. :디 – 68cherries

1

시도 :이 작동합니다 생각

BOOL isWeekCell = (indexPath.row % 8) == 7; 
+0

그게 효과가 있습니다. 고맙습니다. –

+0

죄송 합니다만 최고의 답변을드립니다. 나는 indexPath.row가 15에 도달하기 전에 BOOL이 참일 수 있다는 것을 이해하지 못한다. 나머지는 7을 제공한다. –

+0

첫 번째 행의 경우 행 % 8 == 0에서 6 (첫 번째 행은 행 0임을 기억하자) 8 행, 7 행, 7 % 8 = 7. 행 8-15, 순서는 그냥 반복, 즉 모듈러스 연산자의 성격입니다. –

1

교체 :

if (indexPath.row%8 == 0 && indexPath.row != 0) 

으로 :

if (indexPath.row+1%8 == 0 && indexPath.row != 0) 

이것이 문제를 해결할 것이라고 생각합니다.