दिलचस्प पोस्ट
सुपर () उठाता है "टाइप एरर: प्रकार होना चाहिए, क्लासबोज नहीं" नए-स्टाइल वर्ग के लिए पायथन में तार करने के लिए% क्या करता है? जावास्क्रिप्ट का उपयोग करके छवि को बेस64 स्ट्रिंग में कैसे परिवर्तित किया जाए Grep के साथ बहुत सी फ़ाइलों में एक स्ट्रिंग के सभी संस्करणों की गणना करें XML स्निपेट्स की तुलना करें? Windows XP पर जावा अधिकतम मेमोरी एंड्रॉइड में किस तरह का ओसीआर जावा लाइब्रेरी का उपयोग करना चाहिए? ओरेकल: यदि टेबल मौजूद है क्या बहुविध चर की अनुमति है? ऑब्जेक्ट टैग से html तत्व कैसे प्राप्त करें? मुद्रित पृष्ठों पर Google Chrome दोहराने वाले टेबल हेडर होने पर Active_Record / Rails के created_at, updated_at कॉलम का नाम बदलना जावा पाठ फ़ाइल में पंक्ति बदलें डायलॉग फेंक करने के लिए "getApplication () के साथ संदर्भ के रूप में खिड़की – टोकन नल जोड़ने में असमर्थ कोई अनुप्रयोग के लिए नहीं है" लक्ष्य प्लेटफार्मों को सूचीबद्ध करने में असमर्थ कृपया सुनिश्चित करें कि एंड्रॉइड एसडीके पथ सही है

IPhone 5 स्क्रीन रिज़ॉल्यूशन के लिए ऐप्स को कैसे विकसित या माइग्रेट करें?

नए iPhone 5 डिस्प्ले में एक नया पहलू अनुपात और एक नया रिज़ॉल्यूशन (640 x 1136 पिक्सल) है।

नए स्क्रीन आकार में पहले से ही मौजूदा अनुप्रयोगों को नए या संक्रमण को विकसित करने के लिए क्या आवश्यक है?

पुरानी डिस्प्ले और नए वाइडस्क्रीन पहलू अनुपात दोनों के लिए आवेदन "सार्वभौमिक" बनाने के लिए हमें क्या ध्यान रखना चाहिए?

Solutions Collecting From Web of "IPhone 5 स्क्रीन रिज़ॉल्यूशन के लिए ऐप्स को कैसे विकसित या माइग्रेट करें?"

  1. Xcode के नवीनतम संस्करण को डाउनलोड और इंस्टॉल करें
  2. अपने ऐप के लिए लॉन्च स्क्रीन फ़ाइल सेट करें (अपने लक्ष्य सेटिंग के सामान्य टैब में) आईओएस 9 में आईपैड स्प्लिट व्यू साइज सहित किसी भी स्क्रीन के पूर्ण आकार का उपयोग करने के तरीके से आप इसे प्राप्त कर सकते हैं।
  3. अपने ऐप का परीक्षण करें, और उम्मीद है कि कुछ भी नहीं, क्योंकि सब कुछ अगर आप ठीक से ऑटो रीसाइज़िंग मास्क निर्धारित किया था, या ऑटो लेआउट का इस्तेमाल किया जादुई काम करना चाहिए।
  4. अगर आपने नहीं किया है, तो अपने दृश्य लेआउट को समायोजित करें, अधिमानतः ऑटो लेआउट के साथ।
  5. अगर कुछ विशेष रूप से बड़ी स्क्रीन के लिए आपको कुछ करना है, तो ऐसा लगता है कि आपको [[UIScreen mainScreen] bounds] की ऊंचाई [[UIScreen mainScreen] bounds] क्योंकि उसमें कोई विशिष्ट एपीआई नहीं है। आईओएस 8 के अनुसार आकार की कक्षाएं भी हैं जो सार स्क्रीन आकार नियमित या कॉम्पैक्ट में लंबवत और क्षैतिज हैं और आपके यूआई को अनुकूलन करने का सुझाव दिया जाता है।

यदि आपके पास आईफोन 4 एस या इससे पहले के लिए बनाया गया ऐप है, तो यह आईफोन 5 पर लेटरबॉक्ड चलाएगा।

अपने ऐप को नए लम्बे स्क्रीन में अनुकूलित करने के लिए, पहली चीज है जिसे आप लॉन्च छवि को इसमें बदल सकते हैं: Default-568h@2x.png इसका आकार 1136×640 (एचएक्सडब्ल्यू) होना चाहिए। हां, नए स्क्रीन आकार में डिफ़ॉल्ट छवि होने से आपके ऐप को पूरी नई आईफोन 5 की स्क्रीन ले जाने की कुंजी है

(ध्यान दें कि नामकरण कन्वेंशन केवल डिफ़ॉल्ट छवि के लिए काम करता है। दूसरी छवि "Image-568h@2x.png" नामकरण करने से इसे "Image@2x.png" के स्थान पर लोड नहीं किया जाएगा। अगर आपको अलग-अलग छवियों को लोड करना है अलग-अलग स्क्रीन आकारों के लिए, आपको यह प्रोग्राम करना होगा।)

यदि आप बहुत भाग्यशाली हैं, तो यह हो सकता है … लेकिन सभी संभावनाओं में, आपको कुछ और कदम उठाने होंगे।

  • सुनिश्चित करें कि आपके Xibs / दृश्य स्वयं का आकार बदलने के लिए स्वतः लेआउट का उपयोग करते हैं
  • दृश्यों का आकार बदलने के लिए स्प्रिंग्स और स्ट्रट्स का उपयोग करें
  • यदि यह आपके ऐप के लिए पर्याप्त नहीं है, तो अपने xib / स्टोरीबोर्ड को एक विशिष्ट स्क्रीन आकार के लिए डिज़ाइन करें और दूसरे के लिए प्रोग्रामेटिक रूप से स्थानांतरित करें।

चरम मामले में (जब उपरोक्त कोई भी पर्याप्त नहीं), दो एक्सबिन्स को डिज़ाइन करें और उचित नियंत्रक को दृश्य नियंत्रक में लोड करें।

स्क्रीन आकार का पता लगाने के लिए:

 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {    CGSize result = [[UIScreen mainScreen] bounds].size;    if(result.height == 480) { // iPhone Classic    }    if(result.height == 568) { // iPhone 5    } } 

ऐप संसाधनों के लिए "डिफ़ॉल्ट 568h@2x.png" नाम की एक लॉन्च छवि जोड़ने के लिए और वास्तव में (यदि आप पर्याप्त भाग्यशाली हैं) ऐप वास्तव में काम करेगा, तो वास्तव में आवश्यक चीज है।

यदि ऐप स्पर्श इवेंट्स को संभाल नहीं करता है, तो सुनिश्चित करें कि कुंजी विंडो का सही आकार है उचित फ्रेम निर्धारित करने का समाधान है:

 [window setFrame:[[UIScreen mainScreen] bounds]] 

IOS 6 में माइग्रेट करते समय स्क्रीन आकार से संबंधित अन्य समस्याएं नहीं हैं I विवरण के लिए आईओएस 6.0 रिलीज नोट्स पढ़ें।

कभी-कभी (पूर्व-स्टोरीबोर्ड ऐप्स के लिए), यदि लेआउट पर्याप्त रूप से अलग होने वाला है, तो डिवाइस के अनुसार एक अलग एक्सबिशन निर्दिष्ट करने योग्य है (देखें इस प्रश्न – आपको iPhone 5 से निपटने के लिए कोड को संशोधित करने की आवश्यकता होगी) viewController में init, के रूप में autoresizing मास्क के साथ twiddling की कोई भी राशि काम अगर आप अलग ग्राफिक्स की आवश्यकता होगी

 -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil NSString *myNibName; if ([MyDeviceInfoUtility isiPhone5]) myNibName = @"MyNibIP5"; else myNibName = @"MyNib"; if ((self = [super initWithNibName:myNibName bundle:nibBundleOrNil])) { ... 

यह उन ऐप्स के लिए उपयोगी है जो पुराने आईओएस संस्करणों को लक्षित कर रहे हैं।

यहां आप एक अच्छी ट्यूटोरियल पा सकते हैं (मोनोचौच के लिए, लेकिन आप गैर-मोनो-टच-प्रोजेक्ट्स के लिए भी जानकारी का उपयोग कर सकते हैं):
http://redth.info/get-your-monotouch-apps-ready-for-iphone-5-ios-6-today/

  1. अपने स्प्लैश / डिफॉल्ट स्क्रीन ( 640 x 1136 पिक्सेल ) के लिए "डिफ़ॉल्ट 568h@2x.png " नाम के साथ एक नई छवि बनाएं

  2. IOS सिम्युलेटर में , हार्डवेयर -> उपकरण मेनू पर जाएं और " iPhone (रेटिना 4-इंच) " चुनें

  3. अन्य छवियां बनाएं, उदा। पृष्ठभूमि चित्र

  4. अपनी नई छवियों को लोड करने के लिए आईफोन 5 का पता लगाएं:

 public static bool IsTall { get { return UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone && UIScreen.mainScreen.bounds.size.height * UIScreen.mainScreen.scale >= 1136; } } 

 private static string tallMagic = "-568h@2x"; public static UIImage FromBundle16x9(string path) { //adopt the -568h@2x naming convention if(IsTall()) { var imagePath = Path.GetDirectoryName(path.ToString()); var imageFile = Path.GetFileNameWithoutExtension(path.ToString()); var imageExt = Path.GetExtension(path.ToString()); imageFile = imageFile + tallMagic + imageExt; return UIImage.FromFile(Path.Combine(imagePath,imageFile)); } else { return UIImage.FromBundle(path.ToString()); } } 

XIBs के माध्यम से आईफोन 5 और आईफ़ोन 4 के लिए आसान है ………

 UIViewController *viewController3; if ([[UIScreen mainScreen] bounds].size.height == 568) { UIViewController *viewController3 = [[[mainscreenview alloc] initWithNibName:@"iphone5screen" bundle:nil] autorelease]; } else { UIViewController *viewController3 = [[[mainscreenview alloc] initWithNibName:@"iphone4screen" bundle:nil] autorelease]; } 

मैं इस समस्या को यहाँ हल करता हूँ बस छवियों के लिए ~ 568 एच और @ 2x प्रत्यय को जोड़ें और ~ 568 एच से xib के लिए जोड़ें। कोई अधिक रनटाइम चेक या कोड परिवर्तन की आवश्यकता नहीं है

मैंने नई डिफ़ॉल्ट लॉन्च छवि और (कई अन्य एसई उत्तरों को चेक करने में …) यह सुनिश्चित किया था कि मेरा स्टोरीबोर्ड सभी ऑटो-आकार के स्वयं और उप-दृश्यों पर हैं, लेकिन रेटिना 4 इंच अभी भी लेटरबॉक्स्ड है।

फिर मैंने देखा कि मेरी जानकारी के लिए "लाँग इमेज" सेट करने के लिए "Default.png" के लिए एक लाइन आइटम था, जिसे मैं आंशिक रूप से निकाल दिया और जादुई रूप से लेटरबॉक्सिंग नहीं दिखाई। उम्मीद है कि किसी और को उसी पागलपन को बचा लिया जो मैंने सहन किया।

मुझे लगता है, यह सभी मामलों में काम नहीं करेगा, लेकिन मेरी विशेष परियोजना में मुझे एनआईबी फाइलों के दोहराव से बचा गया:

कहीं common.h आप यह कर सकते हैं स्क्रीन की ऊंचाई के आधार पर परिभाषित कर सकते हैं:

 #define HEIGHT_IPHONE_5 568 #define IS_IPHONE ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) #define IS_IPHONE_5 ([[UIScreen mainScreen] bounds ].size.height == HEIGHT_IPHONE_5) 

अपने बेस नियंत्रक में:

 - (void)viewDidLoad { [super viewDidLoad]; if (IS_IPHONE_5) { CGRect r = self.view.frame; r.size.height = HEIGHT_IPHONE_5 - 20; self.view.frame = r; } // now the view is stretched properly and not pushed to the bottom // it is pushed to the top instead... // other code goes here... } 

एक constants.h फ़ाइल में आप इन परिभाषाओं को परिभाषित कर सकते हैं:

  #define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad #define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone #define IS_WIDESCREEN (fabs((double)[[UIScreen mainScreen] bounds].size.height - (double)568) < DBL_EPSILON) #define IS_IPHONE_5 (!IS_IPAD && IS_WIDESCREEN) 

यह निर्धारित करने के लिए कि आपका ऐप iPhone 5 रेटिना का उपयोग कर सकता है इसका उपयोग: (यह डिस्प्ले, 4 एस रेटिना, आदि के प्रकार को वापस करने के लिए और अधिक मजबूत हो सकता है, लेकिन जैसा कि नीचे लिखा गया है, यह सिर्फ आईफोन के रूप में आईओएस 5 रेटिना का समर्थन करता है हाँ या ना)

एक आम "। एच" फ़ाइल में जोड़ें:

 BOOL IS_IPHONE5_RETINA(void); 

एक आम "। एम" फ़ाइल में जोड़ें:

 BOOL IS_IPHONE5_RETINA(void) { BOOL isiPhone5Retina = NO; if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { if ([UIScreen mainScreen].scale == 2.0f) { CGSize result = [[UIScreen mainScreen] bounds].size; CGFloat scale = [UIScreen mainScreen].scale; result = CGSizeMake(result.width * scale, result.height * scale); if(result.height == 960){ //NSLog(@"iPhone 4, 4s Retina Resolution"); } if(result.height == 1136){ //NSLog(@"iPhone 5 Resolution"); isiPhone5Retina = YES; } } else { //NSLog(@"iPhone Standard Resolution"); } } return isiPhone5Retina; } 

सबसे पहले सब कुछ दो शब्द बनायें और सभी प्रतिनिधियों को मुख्य वर्ग को एक्सआईब से जोड़ दें और फिर आप इस शर्त में अपनी appdelegate.m फ़ाइल में नीचे उल्लिखित स्थिति में डाल सकते हैं।

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions if ([[UIScreen mainScreen] bounds].size.height == 568) { self.ViewController = [[ViewController alloc] initWithNibName:@"ViewControlleriphone5" bundle:nil]; } else { self.ViewController = [[ViewController alloc] initWithNibName:@"ViewControlleriphone4" bundle:nil]; } 

आप अपने ViewController वर्गों में भी अपनी आवश्यकताओं के आधार पर प्रोग्राम में जहां भी उपयोग कर सकते हैं। सबसे ज़्यादा मायने रखता है कि आपने xib iphone 4(320*480) and iphone 5(320*568) लिए दो xib फ़ाइलों को अलग किया है

एक सिंगलटन क्लास में नीचे विधि की कोशिश करें:

 -(NSString *)typeOfDevice { if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { CGSize result = [[UIScreen mainScreen] bounds].size; if(result.height == 480) { return @"Iphone"; } if(result.height == 568) { return @"Iphone 5"; } } else{ return @"Ipad";; } return @"Iphone"; } 

आप Auto Layout सुविधा का उपयोग कर सकते हैं और आईफोन 5 स्क्रीन रिज़ॉल्यूशन का उपयोग करके डिज़ाइन बना सकते हैं और यह 4 "और 3.5" दोनों उपकरणों के लिए काम करेगा, लेकिन इस मामले में आपको लेआउट मैनेजर का पर्याप्त ज्ञान होना चाहिए।

568 साथ bounds जांच लैंडस्केप मोड में विफल हो जाएगी। आईफोन 5 केवल पोर्ट्रेट मोड में लॉन्च करता है लेकिन अगर आप रोटेशन का समर्थन करना चाहते हैं तो आईफोन 5 "चेक" को इस परिदृश्य को भी संभालना होगा।

यहां एक मैक्रो है जो उन्मुखीकरण स्थिति को संभालता है:

 #define IS_IPHONE_5 (CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size, CGSizeMake(640, 1136))) 

'पसंदीदा मोोड' कॉल का उपयोग किसी दूसरे पोस्टिंग से है, जो कुछ घंटों पहले पढ़ता है, इसलिए मैं इस विचार के साथ नहीं आया।

पहले यह चित्र दिखाएं उस छवि में आप रेटिना 4 समर्थन के लिए चेतावनी दिखाते हैं, इसलिए इस चेतावनी पर क्लिक करें और जोड़ें पर क्लिक करें ताकि आपके रेटिना 4 स्प्लैश स्क्रीन आपके प्रोजेक्ट में स्वचालित रूप से जुड़ जाए।

छवि यहां दिखाएं

और इस कोड का उपयोग करने के बाद:

 if([[UIScreen mainScreen] bounds].size.height == 568) { // For iphone 5 } else { // For iphone 4 or less } 

मैंने कभी भी किसी भी उपकरण के साथ इस मुद्दे का सामना नहीं किया क्योंकि मेरे पास किसी भी कठोर मूल्यों के बिना सभी के लिए एक कोडबेस था। मैं क्या करता हूं अधिकतम आकार की छवि प्रत्येक उपकरण के लिए एक के बजाय संसाधन के रूप में है। उदाहरण के लिए, मेरे पास रेटिना डिस्प्ले के लिए एक होगा और इसे पहलू फिट के रूप में दिखाएगा, इसलिए यह प्रत्येक डिवाइस पर के रूप में देखा जाएगा। उदाहरण के लिए, बटन के फ्रेम का निर्णय लेने के लिए, रन टाइम पर। इसके लिए मैं पेटेंट दृश्य के% मान का उपयोग करता हूं, उदाहरण के लिए, अगर मैं चाहता हूं कि चौड़ाई को माता-पिता के आधे हिस्से में रखना चाहिए तो 50% माता-पिता ले लें और वह ऊंचाई और केंद्र के लिए भी लागू होता है।

इसके साथ मुझे ज़िम्मेदारियों की भी जरूरत नहीं है।

यदि आप आईफोन 5 स्क्रीन आकार के आधार पर उपयोग कर रहे हैं, तो आप इसे परिभाषित करने के लिए परिभाषित कर सकते हैं:

 #define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) 

तो एक सरल if कथन का उपयोग करें:

  if (IS_IPHONE_5) { // What ever changes } 

पीटर, आप वास्तव में कैनप्पी पर एक नज़र रखना चाहिए, यह आपके लिए यह सब करता है, आपको जो कुछ करना है वह लेआउट को इस प्रकार निर्दिष्ट करता है:

 button mySubmitButton 'Sumbit' (100,100,100,30 + 0,88,0,0) { ... } 

वहां से कैनेपी सही उद्देश्य-सी कोड उत्पन्न करेगा जो ऐप को चलने वाले डिवाइस का पता लगाता है और इसका उपयोग करेगा:

 (100,100,100,30) for iPhone4 (100,**188**,100,30) for iPhone 5 

Canappi इंटरफ़ेस बिल्डर और स्टोरी बोर्ड की तरह काम करता है, सिवाय इसके कि यह एक शाब्दिक रूप में है। यदि आपके पास पहले से ही XIB फाइलें हैं, तो आप उन्हें बदल सकते हैं ताकि आपको पूरे यूआरआइ को खरोंच से फिर से नहीं बनाया जा सके।

आप किस डिवाइस पर हैं, यह निर्धारित करने के लिए आप मैन्युअल रूप से स्क्रीन आकार की जांच कर सकते हैं:

 #define DEVICE_IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568) float height = DEVICE_IS_IPHONE5?568:480; if (height == 568) { // 4" } else { // 3" } 

आप इस कोड को जोड़ सकते हैं:

 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ if ([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) { CGSize result = [[UIScreen mainScreen] bounds].size; CGFloat scale = [UIScreen mainScreen].scale; result = CGSizeMake(result.width * scale, result.height * scale); if(result.height == 960) { NSLog(@"iPhone 4 Resolution"); } if(result.height == 1136) { NSLog(@"iPhone 5 Resolution"); } } else{ NSLog(@"Standard Resolution"); } } 

यह एक वास्तविक सार्वभौमिक कोड है, आप 3 अलग कहानी बोर्ड बना सकते हैं:

अपना प्रोजेक्ट यूनिवर्सल मोड सेट करें, और iPhone 5 स्टोरीबोर्ड और iPad लक्ष्य स्टोरीबोर्ड के साथ आईपैड मेन के साथ अपनी मुख्य कहानी सेट करें, अब iPhone के लिए नया स्टोरीबोर्ड लक्ष्य जोड़ें और iPhone 4s या उससे कम के लिए संकल्प को संशोधित करें अब अपने AppDelegate.m को लागू करें

आईफोन 4/4 एस (3/3 जी के लिए एक ही है) एक iPhone5 के लिए और परियोजना को सार्वभौमिक बनाने के लिए, आईपैड के लिए एक नया स्टोरीबोर्ड लक्ष्य के साथ, अब ऐडडिलेगेट.एम में दी फिनिश लॉचिंग के तहत यह कोड जोड़ें:

  if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ UIStoryboard *storyBoard; CGSize result = [[UIScreen mainScreen] bounds].size; CGFloat scale = [UIScreen mainScreen].scale; result = CGSizeMake(result.width *scale, result.height *scale); //----------------HERE WE SETUP FOR IPHONE4/4s/iPod---------------------- if(result.height == 960){ storyBoard = [UIStoryboard storyboardWithName:@"iPhone4_Storyboard" bundle:nil]; UIViewController *initViewController = [storyBoard instantiateInitialViewController]; [self.window setRootViewController:initViewController]; } //----------------HERE WE SETUP FOR IPHONE3/3s/iPod---------------------- if(result.height == 480){ storyBoard = [UIStoryboard storyboardWithName:@"iPhone4_Storyboard" bundle:nil]; UIViewController *initViewController = [storyBoard instantiateInitialViewController]; [self.window setRootViewController:initViewController]; } } return YES; } 

तो आपने आईफोन 3/3 जी / 4/4 एस / 5 के लिए यूनिवर्सल ऐप बनाया है, सभी जनरल आइपॉड, और सभी प्रकार की आईपैड

अपने आईएमजी को myImage.png और myImage@2x.png साथ एकीकृत करने के लिए याद रखें

मेरे अनुसार इस तरह की समस्याओं से निपटने का सबसे अच्छा तरीका है और उपकरण की ऊँचाई की जांच के लिए जरूरी कुछ शर्त से बचने के लिए, विचारों के लिए रिश्तेदार फ्रेम या किसी भी यूआई तत्व का प्रयोग कर रहा है जिसे आप उदाहरण के लिए देख रहे हैं: यदि आप जोड़ रहे हैं कुछ यूआई तत्व जो आपको देखने के नीचे या सिर्फ टैब बार के ऊपर चाहिए, आपको अपने दृश्य की ऊंचाई के संबंध में या टैब बार के संदर्भ में (यदि मौजूद है) के संबंध में y मूल रखना चाहिए और हमारे पास ऑटो रीसाइजिंग गुण भी हैं मुझे आशा है कि यह आपके लिए काम करेगा

शर्तों के एक सेट का उपयोग करने के बजाय आप अपने दृश्य को स्क्रीन आकार का स्वचालित रूप से बदल सकते हैं।

 int h = [[UIScreen mainScreen] bounds].size.height; int w = [[UIScreen mainScreen] bounds].size.width; self.imageView.frame = CGRectMake(20, 80, (h-200), (w-100)); 

मेरे मामले में मैं एक ऐसा दृश्य चाहता हूं जो नीचे दिए गए कुछ इनपुट फ़ील्ड और नीचे के कुछ बटनों के बीच की जगह को भरता है, इसलिए स्क्रीन के आकार के आधार पर शीर्ष बाएं कोने और तय किए गए निचले दाएं सही। मेरा ऐप कैमरे द्वारा ली गई तस्वीर के साथ छवि दृश्य को भरता है इसलिए मैं सभी स्थान प्राप्त कर सकता हूं।

यदि आपको पहले से मौजूद ऐप को सार्वभौमिक रूप में परिवर्तित करने की आवश्यकता है, तो आपको इसी फाइलिंग फ़ाइल का चयन करना होगा-> उपयोगिताएँ> शो आकार निरीक्षक दिखाएं

साइज इंस्पेक्टर में आप इस टूल का उपयोग करके ऑटोसाइजिंग देख सकते हैं, आप मौजूदा iOS ऐप में कन्वर्ट कर सकते हैं।

एक्सकोड 5 का उपयोग करना, परियोजना> सामान्य पर "संपत्ति कैटलॉग में माइग्रेट करें" का चयन करें।

फिर अपनी लॉन्च छवि को खोजने के लिए "खोजकर्ता में दिखाएं" का उपयोग करें, आप इसे 640×1136 के रूप में डुमी-संपादित कर सकते हैं, फिर नीचे दिए गए चित्र में दिखाए गए अनुसार उसे संपत्ति कैटलॉग में ड्रैग कर सकते हैं।

सुनिश्चित करें कि दोनों iOS7 और IOS6 R4 अनुभाग में एक छवि है जो 640×1136 है अगली बार जब आप ऐप लॉन्च करेंगे, तो काली बार गायब हो जाएंगे, और आपका ऐप 4 इंच की स्क्रीन का उपयोग करेगा

यहां छवि विवरण दर्ज करें

पॉइंट मूल्य नोटिस – नए Xcode में आपको संपत्तियों के लिए इस छवि फ़ाइल को डिफ़ॉल्ट 568h@2x.png जोड़ना होगा

दृश्यों के लिए Auto Layout सुविधा का उपयोग करें यह स्वचालित रूप से सभी प्रस्तावों को समायोजित करेगा

एक नियंत्रक के लिए नियंत्रक नाम वाले प्रत्यय के साथ ~ आईफ़ोन या ~ आईपैड के लिए दो xibs बनाएँ। समय संकलित करने पर, Xcode डिवाइस पर आधारित सही xib ले जाएगा।

यदि आप आईफोन और आईपैड दोनों के लिए पोर्ट के लिए काफी सरल हैं, तो आप आईफोन और आईपैड दोनों के लिए एकल एक्सआईटी बनाना चाहते हैं तो आकार वर्गों का उपयोग करें।

आईओएस डिवाइस और आईओएस सिम्युलेटर दोनों पर परीक्षण करते समय एक मामूली समस्या है। ऐसा प्रतीत होता है कि सिम्युलेटर (XCode 6.0.1) डिवाइस उन्मुखीकरण के आधार पर [[UIScreen mainScreen] bounds].size चौड़ाई और ऊंचाई के लिए स्विच किए गए मान देता है।

इसलिए सही भौतिक स्क्रीन आकार निर्धारित करते समय यह एक समस्या हो सकती है। यह कोड सभी 2014 को भी अलग करने में मदद करता है। आईफोन मॉडल पीढ़ी:

  • आईफ़ोन 4 स
  • iPhone5 (और iPhone5s)
  • iPhone6 ​​(और iPhone6 ​​+)

यह iPhone6 ​​+ से उदाहरण iPhone6 ​​+ के बीच भेद को आसानी से परिवर्तित करने के लिए आसानी से बदला जा सकता है।

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size; if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) { if (iOSDeviceScreenSize.width > 568 || // for iOS devices iOSDeviceScreenSize.height > 568) // for iOS simulator { // iPhone 6 and iPhone 6+ // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone6 storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone6" bundle:nil]; NSLog(@"loaded iPhone6 Storyboard"); } else if (iOSDeviceScreenSize.width == 568 || // for iOS devices iOSDeviceScreenSize.height == 568) // for iOS simulator { // iPhone 5 and iPod Touch 5th generation: 4 inch screen (diagonally measured) // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone5 storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil]; NSLog(@"loaded iPhone5 Storyboard"); } else { // iPhone 3GS, 4, and 4S and iPod Touch 3rd and 4th generation: 3.5 inch screen (diagonally measured) // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4 storyboard = [UIStoryboard story boardWithName:@"MainStoryboard_iPhone" bundle:nil]; NSLog(@"loaded iPhone4 Storyboard"); } } else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { // The iOS device = iPad storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPadnew" bundle:nil]; NSLog(@"loaded iPad Storyboard"); } // rest my code } 

मैं आपके यूआई इंटरफ़ेस के अनुसार अपने अनुप्रयोगों में ऑटोर्सिंग मास्क का उपयोग करने का सुझाव दूंगा, यह बहुत परेशानी बचाता है और आईफोन 4 और 5 स्क्रीन के लिए अलग-अलग यूआई बनाने से बेहतर है।