0

작은 문제가 있습니다. 나는 iPad 앱을 개발 중이고 UItableView도 가지고있다. 그 테이블 안에는 모든 셀의 단추가 완벽한 위치에 있습니다. 이제는 사용자가 버튼을 클릭하면 UIImagePickerView를 열어 이미지를 선택하고 거기에 설정할 수 있습니다.iPad 앱의 UITableView에서 UIImagePickerView 작업하기

이제 UIPopOver의 개체를 사용하여 imagePicker를 열고 문제가있는 곳을 찾습니다. 버튼을 클릭했을 때 완벽한 장소를 가리 키도록 popOver가 필요합니다. 테이블의 세 번째 행에있는 버튼이 그것을 호출하고 그에 따라 popOver가 열리라고 가정합니다.

나는 팝 오버를 열고 자사의 프레임 설정하려면이 코드를 사용하고 있습니다 : 이제

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    imagePicker.delegate = self; 
CGRect fr = tblView.frame; 

    fr.origin.x = fr.origin.x + btnActive.frame.origin.x; 
    fr.origin.y = fr.origin.y + btnActive.frame.origin.y; 
    fr.size = CGSizeMake(320, 480); 


    popOver = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
    //self.popoverController = popOver;   
    popOver.delegate = self; 
    [popOver presentPopoverFromRect:btnActive.frame 
          inView:tblView 
      permittedArrowDirections:UIPopoverArrowDirectionAny 
          animated:YES]; 

    [imagePicker release]; 

을, 여기에 무슨 일 나는 버튼의 행을 클릭 할 때마다,이다, 최초로 표시되는 행의 팝 오버 포인트 만 . 사용자가 TableView에서 버튼 중 하나를 클릭하면 - (void) setImage: (id) sender이라는 메서드가 호출됩니다. 다음과 같이 그리고 btnActive 버튼을 할당합니다

UIButton *btn = (UIButton *)sender; 
btnActive = btn; 

나는 완벽 버튼의 태그를 얻을 수 있지만 완벽한 장소에서 팝 오버 포인트를 얻을 수 없습니다입니다. 나는 btnActive의 프레임이 매번 유지되기 때문에 그것이라고 생각합니다. 내가 틀렸을지도 모른다. 이 문제를 도와주세요. 미리 감사드립니다!

답변

1

tblView은 버튼의 수퍼 뷰가 아닙니다. UITableViewCell 하위 클래스 뷰 계층 구조가 배치 된 방법에 따라 cell.contentView 또는 cell을 사용해보십시오. 버튼을 클릭 한 셀을 결정해야합니다.

[popOver presentPopoverFromRect:btnActive.frame 
         inView:cell.contentView 
     permittedArrowDirections:UIPopoverArrowDirectionAny 
         animated:YES]; 
관련 문제