UIButton方法调用Iphone而不是Ipad

时间:2013-09-13 17:59:50

标签: iphone ios objective-c ipad uibutton

我正在实施一个通用应用程序。我在init方法中实现了一个'UIView',如下所示:

[self setWantsFullScreenLayout:YES];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
    Menu = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)];
    [Menu setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"Fond_Menu.png"]]];
}
else
{
   Menu = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768, 1024)];
   [Menu setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"Fond_Menu_Ipad.png"]]];
}
[self.view addSubview:Menu];
[Menu release];

但是当我添加'UIButton'时,它可以在Iphone模拟器上运行,而不是在Ipad模拟器上运行。

请参阅“ViewDidLoad”方法:

Jouer = [UIButton buttonWithType:UIButtonTypeCustom];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
    [Jouer setFrame:CGRectMake(82.5, 240, 155, 35)];
    [Jouer setImage:[UIImage imageNamed:NSLocalizedString(@"Bouton_Jouer", @"")] forState:UIControlStateNormal];
    [Jouer setImage:[UIImage imageNamed:NSLocalizedString(@"Bouton_Jouer_HIGH", @"")] forState:UIControlStateHighlighted];
}
else
{
    [Jouer setFrame:CGRectMake(214, 505, 340, 77)];
    [Jouer setImage:[UIImage imageNamed:NSLocalizedString(@"Bouton_Jouer_Ipad", @"")] forState:UIControlStateNormal];
    [Jouer setImage:[UIImage imageNamed:NSLocalizedString(@"Bouton_Jouer_HIGH_Ipad", @"")] forState:UIControlStateHighlighted];
}
[Jouer addTarget:self action:@selector(MyMethod)forControlEvents:UIControlEventTouchUpInside];
[Menu addSubview:Jouer];

如何解决它?

3 个答案:

答案 0 :(得分:3)

确保您的项目已配置为构建“通用”应用。在iPad上运行的iPhone应用程序仍将其UI用户标识为“iPhone”。

答案 1 :(得分:0)

检查您在按钮上设置的图像 - 如果其中一个iPad为零,则可能导致您的按钮无法正常显示。如果不是这样,请检查您的按钮操作实现。

答案 2 :(得分:0)

已修复!

我忘记将iPhone和Ipad区分到代理中,因此主窗口采用iPhone格式=)