2012-10-13 7 views
7

करता कैसे ट्विटर आधिकारिक iOS एप्लिकेशन कस्टम पाठ

iOS एप्लिकेशन के लिए नई आधिकारिक ट्विटर बस ऊपर चित्र में तरह स्थिति बार बदलता है के साथ स्थिति पट्टी बदल जाता है। ऐसी सुविधा को कैसे कार्यान्वित करें?

[image source]

+3

आईओएस ऐप्स के उपभोक्ता के रूप में, मुझे यह पसंद नहीं है जब ऐप्स ऐसा करते हैं। स्टेटस बार ऐप का हिस्सा नहीं है; यह प्रणाली का हिस्सा है। इसे छूना नहीं; यह तुम्हारा गड़बड़ नहीं है। एक रचनात्मक यूआई के साथ आने के लिए आपके पास स्क्रीन की एक पूरी शेष है। कृपया उस क्षेत्र को अकेले छोड़ दें। –

उत्तर

14

यहाँ कैसे मैं एक घूर्णन एनीमेशन के साथ मेरे एप्लिकेशन में यह करना है:

-(void)showStatusBarMessage:(NSString *)message hideAfter:(NSTimeInterval)delay 
{ 
    __block UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:[UIApplication sharedApplication].statusBarFrame]; 
    statusWindow.windowLevel = UIWindowLevelStatusBar + 1; 
    UILabel *label = [[UILabel alloc] initWithFrame:statusWindow.bounds]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.backgroundColor = [UIColor blackColor]; 
    label.textColor = [UIColor grayColor]; 
    label.font = [UIFont boldSystemFontOfSize:13]; 
    label.text = message; 
    [statusWindow addSubview:label]; 
    [statusWindow makeKeyAndVisible]; 
    label.layer.transform = CATransform3DMakeRotation(M_PI * 0.5, 1, 0, 0); 
    [UIView animateWithDuration:0.7 animations:^{ 
     label.layer.transform = CATransform3DIdentity; 
    }completion:^(BOOL finished){ 
     double delayInSeconds = delay; 
     dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); 
     dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
      [UIView animateWithDuration:0.5 animations:^{ 
       label.layer.transform = CATransform3DMakeRotation(M_PI * 0.5, -1, 0, 0); 
      }completion:^(BOOL finished){ 
       statusWindow = nil; 
       [[[UIApplication sharedApplication].delegate window] makeKeyAndVisible]; 
      }]; 
     }); 
    }]; 
} 

मैं UIViewController पर एक वर्ग अनुप्रयोग में जो कुछ भी नियंत्रक से इसका इस्तेमाल करने में पास है।

संपादित करें: जरूरत QuartzCore.framework संदर्भित किया जा करने के लिए और #import <QuartzCore/QuartzCore.h> जोड़े जाने के लिए।

+0

मुझे वास्तव में आश्चर्य हुआ कि उसके पीछे तर्क क्या था, क्या आप कृपया थोड़ा सा समझा सकते हैं? क्या वे स्टेटस बार छुपाते हैं और अपना दिखाते हैं, या क्या? –

+0

जब तक वे यह नहीं बताते कि वे इसे कैसे करते हैं, तो आप केवल यह मान सकते हैं कि वे इसे कैसे करते हैं। मैं केवल इसे छिपाने के लिए एक UIWindow उदाहरण जोड़ता हूं, इसमें एक लेबल जोड़ता हूं, एनीमेशन बना देता हूं और फिर विंडो को हटा देता हूं – Moxy

+0

धन्यवाद, मैं इसे कभी कोशिश करो। –