ठीक है, मैं एक सबव्यूव के रूप में UIImageView जोड़ना चाहता हूं और फिर स्पलैश स्क्रीन के तरीके में कुछ सेकंड के बाद इसे हटा देना चाहता हूं। मुझे ऐसा करने के लिए तीन अलग-अलग दृष्टिकोण मिलते हैं लेकिन मैं समझ नहीं पा रहा हूं कि उद्देश्य-सी और ऐप्पल के अनुसार कौन सा सबसे अच्छा तरीका है।आईओएस - एक सबव्यू प्रोग्रामिंग
1) द्वितीय कार्य में मेरी MyAppDelegate.h
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
MyViewController *myViewController;
UIImageView *myImageView;
}
@property (nonatomic, retain) IBOutlet MyViewController *myViewController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
और में MyAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
myImageView =[[UIImageView alloc] initWithFrame:CGRectMake(0.0,0.0,self.window.frame.size.width,self.window.frame.size.height)];
myImageView.image=[UIImage imageNamed:@"Yoga.png"];
[self.window addSubview:myImageView ];
[self.window bringSubviewToFront:myImageView];
[self performSelector:@selector(removeImage) withObject:nil afterDelay:2.5];
return YES;
}
-(void) removeImage
{
[myImageView removeFromSuperview];
[myImageView release];
[self.window addSubview:myViewController.view];
[self.window makeKeyAndVisible];
}
2) में:
नीचे तीन अलग अलग दृष्टिकोण हैं
In my MyAppDelegate.h
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
MyViewController *myViewController;
UIImageView *myImageView;
}
@property (nonatomic, retain) IBOutlet UIImageView *myImageView;
@property (nonatomic, retain) IBOutlet MyViewController *myViewController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
और MyAppDelegate.m
@Iynthesize myImageView;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
myImageView =[[UIImageView alloc] initWithFrame:CGRectMake(0.0,0.0,self.window.frame.size.width,self.window.frame.size.height)];
myImageView.image=[UIImage imageNamed:@"Yoga.png"];
[self.window addSubview:myImageView ];
[self.window bringSubviewToFront:myImageView];
[self performSelector:@selector(removeImage) withObject:nil afterDelay:2.5];
return YES;
}
-(void) removeImage
{
[myImageView removeFromSuperview];
[myImageView release];
[self.window addSubview:myViewController.view];
[self.window makeKeyAndVisible];
}
- (void)dealloc
{
[myViewController release];
[myImageView release];
}
3) तीसरे दृष्टिकोण में:
In my MyAppDelegate.h
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
MyViewController *myViewController;
}
@property (nonatomic, retain) IBOutlet MyViewController *myViewController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
और MyAppDelegate.m में
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIImageView *myImageView =[[UIImageView alloc] initWithFrame:CGRectMake(0.0,0.0,self.window.frame.size.width,self.window.frame.size.height)];
myImageView.image=[UIImage imageNamed:@"Yoga.png"];
myImageView.tag=22;
[self.window addSubview:myImageView ];
[myImageView release];
[self.window bringSubviewToFront:myImageView];
[self performSelector:@selector(removeImage) withObject:nil afterDelay:2.5];
return YES;
}
-(void) removeImage
{
for (UIView *subview in [self.view subviews]) {
if (subview.tag == 22){
[subview removeFromSuperview];
}
}
[self.window addSubview:myViewController.view];
[self.window makeKeyAndVisible];
}
- (void)dealloc
{
[myViewController release];
}
तो योग करने के लिए .. पहले दृष्टिकोण UIImage के लिए एक संपत्ति का उपयोग नहीं करता केवल एक चर, दूसरा एक संपत्ति का उपयोग करता है और तीसरा व्यक्ति सिर्फ यूआईएममेज बनाता है और इसे एक सबव्यूव के रूप में जोड़ता है और फिर इसे अपने टैग के आधार पर हटा देता है ..
का पालन करने का सही दृष्टिकोण कौन सा है .. मेरा मानना है कि सभी तीन विकल्प सही हैं .. लेकिन क्या मुझे कोई निश्चित तरीका है जिसका पालन करना चाहिए। क्या इनमें से कोई भी विकल्प स्मृति और प्रदर्शन के मामले में बेहतर है?
अग्रिम धन्यवाद,
एंड्रियास
तकनीकी सवाल छप स्क्रीन कि कृत्रिम उपयोगकर्ता का उपयोग करने के लिए आपके आवेदन गरीब मोबाइल डिजाइन है और क्या iPhone एचआईजी ने सुझाव दिया है नहीं है हो रही देरी के बाद (आप QuartzCore ढांचा साथ जोड़ने की आवश्यकता)। – Nick
सवाल स्प्लैश स्क्रीन के बारे में नहीं है। यह कुछ लागू करने का सही तरीका चुनने के बारे में है ..यह उदाहरण स्प्लैश स्क्रीन के साथ पूरी तरह से अप्रासंगिक कुछ सवाल हो सकता है! यह सबव्यूव जोड़ने और बाद में इसे हटाने का सही तरीका है .. – andreasv
पहला दृष्टिकोण सही लगता है लेकिन आपको अपने UIImageView को प्रारंभ करने की आवश्यकता नहीं है क्योंकि यह एक आउटलेट है, बस उस देरी के समय विधि को आग लगाना और उसे हटा दें superView से जो आपका दृश्य नियंत्रक हो सकता है –