3 个不同的故事板,用于不同的设备编程和 3 个不同的 iAd 版本
Posted
技术标签:
【中文标题】3 个不同的故事板,用于不同的设备编程和 3 个不同的 iAd 版本【英文标题】:3 different storyboards for different devices programing and 3 different iAd versions 【发布时间】:2014-10-01 19:47:25 【问题描述】:您好,我的应用程序使用 3.5 英寸屏幕时遇到问题,所以我想为 iPhone 3.5 版本创建另一个故事板文件,尽管我已经有一个可以工作的 iPad 和 iPhone 4 英寸版本。我的问题是每个设备是否可以有 3 个故事板?1 用于 iPhone 4 英寸主用于 3.5 英寸 iPhone 和 iPad,以及如何识别 iAd 高度以及它是否适用于 2 个版本的 iPad 和 iPhone,但无法弄清楚 3这是 iAd 的代码
- (AppDelegate *) appdelegate
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
-(void) viewWillAppear:(BOOL)animated
_UIiAD = [[self appdelegate] UIiAD];
_UIiAD.delegate = self;
//checkts whether you are running on iPad,or iphone to get the banner to correct possition
if ( IDIOM == IPAD )
[_UIiAD setFrame:CGRectMake(0,960,320,50)];
else
[_UIiAD setFrame:CGRectMake(0,521,320,50)];
[self.view addSubview:_UIiAD];
-(void) viewWillDisappear:(BOOL)animated
_UIiAD.delegate = nil;
_UIiAD=nil;
[_UIiAD removeFromSuperview];
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
NSLog(@"ads loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[_UIiAD setAlpha:1];
[UIView commitAnimations];
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
NSLog(@"ads not loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[_UIiAD setAlpha:0];
[UIView commitAnimations];
也需要为 3.5 做它,但无法弄清楚 至于关于 3 个不同故事板的连接,我得到了这个字符串 在我的 plist 文件中
主故事板文件基本名称 主故事板文件基本名称(iPad) 我应该简单地创建新字符串吗 主情节提要文件基本名称(iPhone) 并连接我创建的故事板文件? 或者任何人都可以告诉我一个更简单的解决方案,可能在 Xcode 6 中有约束,尽管我仍然试图弄清楚它是如何工作的 谢谢!
【问题讨论】:
【参考方案1】:您无需为 3.5 英寸设备创建单独的情节提要。只需在您的应用程序中全局定义以下宏,您就可以检查各种设备。
`#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
定义 IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
定义 IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f)
定义 IS_IPHONE_4 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 480.0f)
定义 IS_RETINA ([[UIScreen mainScreen] scale] == 2.0f)
定义 IDZTrace() NSLog(@"%s", PRETTY_FUNCTION)
` 只需将 IS_IPHONE_4 检查 3.5 英寸设备并应用您的相关逻辑。您还可以使用自动布局和约束。如果您不清楚约束和自动布局概念,请关注http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1。
【讨论】:
以上是关于3 个不同的故事板,用于不同的设备编程和 3 个不同的 iAd 版本的主要内容,如果未能解决你的问题,请参考以下文章
使用 2 个不同的故事板,一个用于 LTR,一个用于 RTL(非自动布局)