2014-01-13 4 views
1

이 코드에서 iOS 5와 6에있는 UITableViewCell 하위 클래스 내에서 큰 일 동안있는 UITableViewCell에 빨간색 마이너스 버튼의 위치를 ​​변경 : 내가 찾은편집 모드에서

if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
     CGRect newFrame = subview.frame; 
     //Use your desired x value 
     newFrame.origin.x = 280; 
     subview.frame = newFrame;  
} 

아이폰 OS 7에 내 응용 프로그램을 디버깅하는 동안 위의 모든 하위 뷰는 UITableViewCellContentView이라고하며 하위 뷰 UITableViewCellEditControl의 위치를 ​​알 수있는 방법은 없습니다.

위의 작업을 수행하는 데 더 좋은 해결책이 있습니까?

+0

이 파단에 재귀 확인을 시도 – santhu

+0

@santhu 이미 그렇게했고, 내가 게시 한 UITableViewCellEditControl'는 서브 뷰의 서브 뷰 안에 '있다는 대답을 발견, 감사 – Segev

+0

나는 한 번 해킹이 문제를 건너 왔어요 하위 뷰의 하위보기.하지만 사람들이 이렇게 말하면 앱이 사과에 의해 거부 될 수 있다고 말합니다. – santhu

답변

1

나는 이것을 디버깅하는 동안 iOS 7의 모든 하위 뷰가 이제 'UITableViewCellEditControl'이라고 불리우는 것을 발견했습니다. 모든 하위 뷰의 하위 뷰를 로깅 해본 결과 UITableViewCellEditControl은 이제 하위 뷰의 하위 뷰입니다. :..

for (UIView *subview in self.subviews) 
    { 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
      CGRect newFrame = subview.frame; 
      newFrame.origin.x = 280; 
      subview.frame = newFrame; 
     } 
     else 
     { 
      if(IS_OS_7_OR_LATER) 
      { 
       for(UIView *subsubview in subview.subviews) 
       { 
        if ([NSStringFromClass([subsubview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
         CGRect newFrame = subsubview.frame; 
         newFrame.origin.x = 280; 
         subsubview.frame = newFrame; 
        } 
       } 
      } 
     } 
관련 문제