正确调整iPhone5和iPad应用程序背景的图像视图大小

时间:2014-07-08 23:39:15

标签: ios iphone objective-c ipad

我正在使用图片视图来显示我的应用的背景,这是一个单一视图应用。它基本上是iPhone5的计算器,但我遇到的问题是你可能知道应用程序应该可以在iPad上运行以便能够被批准用于iTunes Store,而且正在发生的是我的图像的按钮部分切断并且屏幕上不显示一些重要的按钮(当它在iPad上运行时)

我一直在寻找,但我找不到正确的方法来实现这一点,而不是我的图像显示像素或简单丑陋..

1。如果我在Xcode上设置图像不是可编程的,那么当图像被切断时(我在我的Main.storyboard上执行此操作,然后在我的属性检查器上执行此操作,并设置我在这个尺寸640 x 1136为我的iphone5应用程序创建的图像。

2。我也试过这种方法,但我取得了一些成功但不是我正在寻找的是正确显示清晰的背景(没有像素)或(丑陋)和保持ipad显示屏中按钮的相同对齐(可能是视网膜,迷你...)

注意:为了完成这一部分,我必须从我的图像视图中删除图像并将其留空,这会产生一个有趣的丑陋图像..

    UIGraphicsBeginImageContext(self.view.frame.size);
        [[UIImage imageNamed:@"myCal-bg-iphone5 .png"] drawInRect:self.view.bounds];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        //[self imageWithImage:thumbImage scaledToSize:CGSizeMake(30,30)]

        self.view.backgroundColor = [UIColor colorWithPatternImage:image];

3。我也尝试过,改变了我的图像视图的图像,但我也没有太大的成功..它像疯了一样扩展图像,在ipad显示屏中它几乎没有按钮显示所有..

注意:我也尝试使用与iphone5显示器相同的图像

    CGRect screenBounds = [[UIScreen mainScreen] bounds];
        if (screenBounds.size.height == 568){
           [self.myBackground setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myCal-bg-iphone5.png"]]];
        }else{
            [self.myBackground setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myCal-bg-ipadMini.png"]]];
        }

3 个答案:

答案 0 :(得分:0)

IB上有一个拉伸属性。

enter image description here

您可以设置将被拉伸的图像区域。例如,如果设置X = 0.9,width = 0.1,则右侧10%的图像将使用imageView大小进行拉伸。

可编程?使用UIImage的实例方法。 resizableImageWith ...

答案 1 :(得分:0)

我以这种方式工作,如果你们有任何建议请告诉我..

我有一个用于检测屏幕尺寸的MACRO ..

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

然后,这是在我的 viewDidLoad

UIImage *image;

if ( IS_IPHONE_5 )
    image = [UIImage imageNamed:@"myCal-bg-iphone5.png"];
else
    image = [UIImage imageNamed:@"myCal-bg-iphone4.png"];


 self.myBackground = [[UIImageView alloc] initWithFrame:self.view.bounds];
 self.myBackground.image = image;
 self.myBackground.autoresizingMask = UIViewAutoresizingFlexibleHeight;
 self.myBackground.contentMode = UIViewContentModeScaleAspectFill;
 [self.view insertSubview:self.myBackground atIndex:0];

最后,我正在做的是调整我用于我的iphone5应用程序的图像作为背景能够适应iphone4,它也适合ipad但适用于iphone应用的1X或2X显示器.. < / p>

注意:我希望能够调整整个事情的大小..例如或者说几句话,这样做后调整我的应用程序的按钮大小调整了iphone4或ipad的错位因为屏幕尺寸不同,所以我想知道是否有一种方法可以控制所有这些并重新调整到新的屏幕尺寸/设备?

答案 2 :(得分:0)

如果您使用Xcode5及更高版本,只需在Images.xcassets中创建新图像

- 右击Click Images.xcassets - &gt;新图像集(重命名)

- 右键单击​​图像集的工作面板 - &gt;选择Rentina 4 in和iPad。  取消选择通用图像和iPhone(如果不是目标iPhone 4)

- 将每个图像关联到类型

然后只需在代码中设置图像名称