0

正如标题所述。我有两个 Storyboard,一个用于 iPhone,一个用于 iPad。iPhone 可以,iPad 不行。我可以访问按钮,例如我可以为 iPad 和 iOS 执行 setTitle,但是当我执行 insertSublayer 时,这只适用于 iPhone。

任何建议可能是什么原因?

多谢你们!

编辑:

UIColor *color1 = [UIColor colorWithRed:(228/255.0) green:(91/255.0) blue:(0/255.0) alpha:(1.0)];
UIColor *color2 = [UIColor colorWithRed:(152/255.0) green:(61/255.0) blue:(0/255.0) alpha:(1.0)];
NSNumber *stopOne = [NSNumber numberWithFloat:0.0];
NSNumber *stopTwo = [NSNumber numberWithFloat:1.0];
NSArray *locations = [NSArray arrayWithObjects:stopOne, stopTwo, nil];
CAGradientLayer *buttonALayer = [CAGradientLayer layer];
buttonALayer.frame = startGame.layer.bounds;

float iOSversion = [[UIDevice currentDevice].systemVersion floatValue];
int layerIndex = 1;
if (iOSversion < 5.9)
{
    layerIndex = 0;
}

float cornerRadius = 0.0f;

buttonALayer.colors = colorsA;
buttonALayer.locations = locations;
buttonALayer.cornerRadius = cornerRadius;
[startGame.layer insertSublayer:buttonALayer atIndex:layerIndex];

<- 此代码适用于 iPhone,但不适用于 iPad。以下代码适用于两种设备(模拟器!):

[startGame setTitle:@"Bullwaste" forState: UIControlStateNormal];

<- 因为它也适用于 iPad,对我来说,奥特莱斯和参考资料似乎不是原因?

编辑2:

我尝试执行以下操作:

startGame.alpha = 0.3;
NSString *justAString = [NSString stringWithFormat: @"%f", startGame.bounds.size.width];
[startGame setTitle:justAString forState: UIControlStateNormal];

iPhone Sim 中的反应:按钮变为透明,标题为 280.0000 iPad Sim 中的反应:按钮变为透明,标题为 0.00000

我只是不明白这个?startGame.alpha 确实有效 startGame.bounds.size.width 仅适用于 iPhone!?!?

4

1 回答 1

0

大声笑,我无法相信解决方案,但是:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self viewDidLoad];
}

我在 viewDidLoad 中有我的代码,但视图没有完全加载 - 不适用于 iPad。

您如何看待上述解决方案,或者我应该将所有代码都放入 viewDidAppear 中?但是我不认为两次调用 viewDidLoad 是一个问题,我可以相信如果我在“更快”系统上更改按钮颜色,一些用户会看到闪烁或类似的东西!?

于 2013-01-09T20:45:14.500 回答