2009-05-05 14 views
13

का उपयोग करके "लोडिंग ..." व्यू बनाना, उस काले/ग्रे मोडल पॉपअप प्रकार का दृश्य कैसे बनाएं, जब कई ऐप्स लंबित ऑपरेशन प्रगति पर हों, तो कितने ऐप्स उपयोग करते हैं?आईफोन एसडीके

जैसे जब स्थान आधारित सेवाओं का उपयोग कर, एक वेबपृष्ठ लोड हो रहा, स्क्रीन मंद हो जाता है और वहाँ एक मॉडल एक कताई आइकन दृश्य दिखाए जा रहे है "कृपया प्रतीक्षा करें ..." निम्न स्क्रीनशॉट में

उदाहरण:

Screenshot

उत्तर

14

यदि आप अनियंत्रित एपीआई से बचना चाहते हैं तो आप MBProgressHUD पर भी एक नज़र डाल सकते हैं। यह UIProgressHUD के समान है और यहां तक ​​कि कुछ अतिरिक्त सुविधाएं भी हैं।

+0

यूआरएल एक 404 देता है डी: –

+2

इसके लिए खेद है। http://github.com/matej/MBProgressHUD पर इसे पाने के –

17

यह वास्तव में अनियंत्रित (2.2.1 में वैसे भी) UIProgressHUD है। इस तरह एक बनाएँ:

अपने ज में:

@interface UIProgressHUD : NSObject 
- (UIProgressHUD *) initWithWindow: (UIView*)aWindow; 
- (void) show: (BOOL)aShow; 
- (void) setText: (NSString*)aText; 
@end 

अपने मीटर में:

- (void) killHUD: (id)aHUD 
{ 
[aHUD show:NO]; 
[aHUD release]; 
} 

- (void) presentSheet 
{ 
id HUD = [[UIProgressHUD alloc] initWithWindow:[contentView superview]]; 
[HUD setText:@"Doing something slow. Please wait."]; 
[HUD show:YES]; 
[self performSelector:@selector(killHUD:) withObject:HUD afterDelay:5.0]; 
} 
+3

क्या इसका उपयोग ऐप स्टोर में किया जा सकता है और सबमिट किया जा सकता है? –

+3

हां, यह निजी एपीआई से जुड़ा नहीं है। हमने UIAlertView पर बटन के साथ कुछ ऐसा किया है, बिना किसी समस्या के समीक्षा के माध्यम से चला गया। – zoul

+0

मुझे यह नहीं पता था - धन्यवाद zoul। –

4

आप मुख्य विंडो यह पूरे कवर किया जाएगा की एक subview के रूप एक UIView जोड़ते हैं यूआई। इसे आंशिक रूप से पारदर्शी और आंशिक रूप से पारदर्शी बनाएं और यह पॉपअप की तरह दिखेगा।

यह उदाहरण दिखाता है कि fade the Default.png splash screen कैसे शुरू होता है, यह शुरू होता है कि प्रगति दृश्य को प्रस्तुत करने और खारिज करने के लिए आपके एप्लिकेशन प्रतिनिधि (जो मुख्य विंडो में पॉइंटर है) में कुछ विधियां जोड़ने के लिए यह बहुत सरल है।

+0

हाय duncanwilcox, मैं भी इस चाहता था ... स्क्रीन default.png fading ... :) धन्यवाद ... आप सवाल जो मैं अभी भी नहीं पूछा है जवाब देने के लिए लगता है ...? – Mugunth

4

वर्डप्रेस आईफोन ऐप (http://iphone.wordpress.org/) पर किसी भी अनियंत्रित एपीआई का उपयोग किये बिना इसे कैसे करें इसके उदाहरण के लिए देखें।

1

मैं इस उद्देश्य के लिए LoadingHUDView का उपयोग करता हूं, और यह हमेशा काम करता है।

LoadingHUDView.m हो और LoadingHUDView.h और कर अपने आधार वर्ग (या जो भी)

#pragma mark ActivityIndicator Methods 

-(void) showModalActivityIndicator:(NSString *)message 
{ 
     loadingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]retain];// origional 
     //loadingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; //testing 
     loadingView.backgroundColor = [UIColor grayColor]; //[UIColor colorWithRed:1 green:1 blue:1 alpha:0.3]; 
     LoadingHUDView *loadHud = [[LoadingHUDView alloc] initWithTitle:message]; 
     loadHud.center = CGPointMake(160, 290); 
     [loadingView addSubview:loadHud]; 
     [loadHud startAnimating]; 
     [loadHud release]; 
     [loadingView setAlpha:0.0]; 
      [self.tableView addSubview:loadingView]; 
     [UIView beginAnimations:@"fadeOutSync" context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.5]; 
     [loadingView setAlpha:0.5]; 
     [UIView commitAnimations]; 
} 

-(void) hideModalActivityIndicator { 
    if (loadingView) { 
    [UIView beginAnimations:@"fadeOutSync" context:NULL]; 
    [UIView setAnimationDidStopSelector:@selector (removeTranparentView) ]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDuration:0.5]; 
    [loadingView setAlpha:0]; 
    [UIView commitAnimations]; 
     } 
} 

-(void)removeTranparentView 
{ 
    [loadingView removeFromSuperview]; 
    [loadingView release]; 
    loadingView = nil; 
} 

आशा है कि यह मदद मिलती है में निम्नलिखित। आप

+0

आप के रूप में उपयोग कर सकते हैं: \t [आत्म showModalActivityIndicator: @ "में ... आप लॉग इन करना"]; – thesummersign

11

मैं सबसे सरल (कोड की कुछ लाइनों) लगता है धन्यवाद, पूरी तरह से प्रलेखित है और सबसे सुंदर तरीके से एक UIActivityIndicatorView साथ UIAlertView उपयोग करने के लिए है:

http://iosdevelopertips.com/user-interface/uialertview-without-buttons-please-wait-dialog.html

UIAlertView with UIActivityIndicatorView http://iosdevelopertips.com/wp-content/uploads/2010/02/alert3-204x300.png

+0

यह एक बढ़िया समाधान था ... लेकिन अब iOS 7 के साथ काम प्रतीत होता है। – HughHughTeotl

0

XIB में फ़ाइल, UIView और UIActivityIndicatorView रखें। सेट गतिविधिइंडिकेटर देखें संपत्ति सेट हां तक ​​स्वीकृत।

@property (बनाए रखना, nonatomic) IBOutlet UIView * m_LoadingView;

लंबी कार्यवाही शुरू करते हैं, दृश्य

m_LoadingView.layer.cornerRadius = 10; 
m_LoadingView.center = self.view.center; 
[self.view addSubview:m_LoadingView]; 

को LoadingView जोड़े प्रक्रिया को पूरा करने के बाद, सुपर देखने से LoadingView निकालें। [m_LoadingView removeFromSuperView] देखें;