IPad Air App放大了IPad Pro

时间:2016-06-20 13:55:12

标签: ios objective-c xcode ipad

我现有的iOS应用程序用于目标设备iPad Air,我希望它能够在iPad PRO上运行。一切正常,但我需要一个图像在两个设备上保持相同的尺寸(mm上的realSize)。

两台设备的分辨率相同,所以我不明白为什么Image Pro在iPad Pro上更大。这是我绘制图像的方式。

- (void) drawNewNumberImage {
    int index = arc4random()%_allNumbers.count;
    while([_currentNumber  isEqualToString:[_allNumbers objectAtIndex:index]]) {
        index = arc4random()%_allNumbers.count;
    }
    _currentNumber = [_allNumbers objectAtIndex:index];
    int s = _size;
    //_imgView.image = [UIImage imageNamed:[_allNumbers objectAtIndex:index]];
    _imgView.image = [ImageProvider getPDFVectorImage:[_allNumbers objectAtIndex:index] AndFontSize:s];
    CGRect frame = _imgView.frame;

    frame.size = CGSizeMake(s, s);
    _imgView.frame = frame;

    _imgView.center = CGPointMake(CGRectGetWidth(self.view.frame)/2 , CGRectGetHeight(self.contentView.frame)/2);
}

似乎iPad Pro只是扩展了所有应用程序。有没有办法禁用此行为。

2 个答案:

答案 0 :(得分:1)

您可以尝试检测它是否是iPad专业版并创建您想要的新尺寸,否则您的工作默认尺寸将会启动。

- (void) drawNewNumberImage {


if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 1366)
{
    // iPad Pro
    //add your iPad Pro sizes 

}  else {

int index = arc4random()%_allNumbers.count;
while([_currentNumber  isEqualToString:[_allNumbers objectAtIndex:index]]) {
    index = arc4random()%_allNumbers.count;
}
_currentNumber = [_allNumbers objectAtIndex:index];
int s = _size;
//_imgView.image = [UIImage imageNamed:[_allNumbers objectAtIndex:index]];
_imgView.image = [ImageProvider getPDFVectorImage:[_allNumbers objectAtIndex:index] AndFontSize:s];
CGRect frame = _imgView.frame;

frame.size = CGSizeMake(s, s);
_imgView.frame = frame;
_imgView.center = CGPointMake(CGRectGetWidth(self.view.frame)/2 , CGRectGetHeight(self.contentView.frame)/2); 
}

}

答案 1 :(得分:1)

如果您要针对iOS 8 SDK进行构建,则需要以正确的大小添加启动图像。否则Apple假定您不知道如何在iPad Pro中处理并扩展所有内容。检查代码获取屏幕大小的位置和NSLog;如果你得到1024 x 768,那么你就错过了正确的发射图像。

顺便说一句。你应该真的,真的看看屏幕的高度或宽度并做出假设,就像另一个答案一样,因为在iPad Pro上使用分屏你的假设可能非常非常错误并且让你进入麻烦。