2010-01-07 2 views
1

각 축소판 이미지가 테이프로 표시 될 때 더 큰 이미지로 새보기를 밀어 넣어야 할 때 각 표 셀에 축소판 이미지를 표시해야하는 앱을 작성하고 있습니다. 따라서 단일 셀에는 두 개의 터치 이벤트가 있어야합니다. 하나는 이미지 용이고 다른 하나는 세부 사항보기를 나타내는 이벤트입니다. 기본적으로 didSelectRowAtIndexPath에서 잘 동작하는 세부 뷰를 호출합니다.더 큰 이미지를 표시하려면 표 셀의 UIImageView를 탭하십시오.

누군가가 접근 할 수있는 방법을 제안 할 수 있습니까?

덕분에, 바스 카르 질문에서

답변

1

가장 간단한 방법은 단추의 축소판을 셀의 보조보기로 추가하는 것입니다. 버튼이 눌려지면 다음 뷰를로드 할 액세서리 뷰 메서드가 호출됩니다.

1

, 당신이 그것을에있는 UIImageView와 사용자 정의 세포가있는 것을 알 수있다. 이 경우 해당 셀을 탭할 때마다 이미지 또는 빈 부분에있을 수 있으므로 didSelectRow atIndexPath 메서드가 호출됩니다. 더 좋은 방법은 항법사의 공개 버튼과 비슷한 버튼을 사용하여 그 중 하나를 보여주는 것입니다.

0

TechZen의 접근 방식을 권장합니다. 사용자 지정 UIButton을 추가하여 원하는 위치에 배치 할 수 있으며 그 자유는 훌륭하지만 경험상 스크롤 성능을 실제로 없애는 경향이 있습니다. 액세서리 뷰를 위해 최적화가 수행되면 버튼보다 사용자에게 더 나은 환경을 제공 할 수 있습니다.

0

나는 Alex에 동의합니다. 추가 정보 : 테이블 행에 대한 Detail Disclosure Button 액세서리보기입니다. 예를 들어 전화 응용 프로그램의 즐겨 찾기 탭을 참조하십시오. 행을 누르면 해당 사람에게 전화가 걸리지 만 오른쪽의 파란색 원형 버튼을 탭하면 해당 사람의 연락처 정보에 대한 상세보기로 이동합니다. 또 다른 예는 YouTube 애플리케이션입니다.

테이블 셀을 탭하면 더 큰 이미지가 표시되는 YouTube 애플리케이션과 같은 것이 좋겠다고 생각하고 세부 공개 버튼을 탭하면 이미지에 대한 메타 데이터가 표시됩니다.

세부 공개 버튼을 추가하는 방법은 UITableViewCell 문서를 참조하십시오. 매우 간단합니다.

-1

이미지가 셀에 있음을 알고 서브 클래 싱을 싫어하므로 조금 재미있는 해킹을 할 수 있습니다. 당신은 단지 cell.imageView 속성을 사용하고있는 UIImageView에 대한 범주 던져 수 있습니다

NSIndexPath indexOfSelectedCellImage = [self.tableview indexPathForCell:[notificaton object]]; 

내가 확인하지 않았다 : 테이블 뷰 컨트롤러에서 다음

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ 

    if([self.superview isKindOfClass:[UITableViewCell class]]){ 

     if([touches anyObject].tapCount == 1){ 

      //Image was tapped, issue notification, we use the cell as the object 
      [[NSNotificationCenter defaultCenter] postNotificationName:@"CellImageTapped" object:self.superview] 
      //just return after the notification 
      return; 
     } 
    } 
    //if it wasn't a tap, just forward the touch 
    [super touchesEnded:touches withEvent:event]; 
} 

을, 당신은에 의해 선택된 셀을 해결할 수 있습니다

…if([self.superview.superview isKindOfClass:[UITableViewCell class]])… 
…[[NSNotificationCenter defaultCenter] postNotificationName:@"CellImageTapped" object:self.superview.superview]… 

참고 : 바로 다음에 대체 할 경우에, 그러나 cell.imageView의 수퍼에서,있는 contentView 수 있습니다 테이블 뷰 컨트롤러가 notific에 가입해야해야합니다 ation.

관련 문제