2013-08-23 1 views
0

UIActionSheet의 clickButtonAtIndex 함수에서 UIActivityIndicator를 시작합니다. 여기 그러나, 버튼을 클릭하는 순간, UIActivityIndicator가 UIActionSheet과 함께 사라actionSheet가 닫히 자마자 UIActivityIndicator가 사라집니다.

UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil 
                  delegate: self 
               cancelButtonTitle: nil 
              destructiveButtonTitle: @"Cancel" 
               otherButtonTitles: @"Button1", 
           @"Button2", nil]; 

[actionSheet showFromRect: rect inView: view animated: YES]; 

아래에 주어진 코드

+(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 

NSLog(@"AS Button Clicked %d",buttonIndex); 

UIActivityIndicatorView *indicator=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 

indicator.frame=CGRectMake(10, 10, 56, 56); 
[indicator startAnimating]; 
[[actionSheet superview] addSubview:indicator]; 

} 

그리고 UIActionSheet를 시작하는 코드입니다.

무엇이 여기에 있습니까?

답변

1

액션 시트의 수퍼 뷰는 새 창이거나 화면을 덮는 다른보기입니다. 작업 시트를 닫으면 다른 창이나보기도 제거됩니다.

다른보기에 활동 표시기를 추가하면 활동 표시기가 나머지 활동 시트와 함께 사라집니다.

조치 표시기와 관련이없는 무언가에 활동 표시기를 추가해야합니다.

+0

감사합니다. 그것은 개념에 의해 제거되었습니다. :) –

+0

귀하의 질문에 대한 답변을 얻었다면 답을 수락하는 것을 잊지 마십시오. – rmaddy

+0

나는 그것을 어떻게하는지 모른다. Stack Overflow의 사용자 인터페이스는 어리 석다. –

0

액션 시트의 수퍼 뷰에 넣고 있습니다. 액션 시트보기 계층 구조가 비공개이고 액션 시트로 슈퍼 뷰가 사라지기 때문에 어떤보기인지는 알 수 없습니다.

표시기를 대신보기 중 하나에 넣으십시오.

0

문제는 [[actionSheet superview] addSubview:indicator];

함께 당신은 분명히 즉시 UIActionSheet가 사라질으로 사라질 것 UIActionSheet로 활동 표시를 추가했다

[self.view addSubview:indicator];으로이 수정하세요.

편집 된 코드를 사용하면 View에 코드가 추가됩니다. 이제 UIActionSheet이 (가) 해제 된 후에도이 (가) 활동 표시로 표시됩니다.