2012-09-21 48 views
0

我有很多的UIImageViews對我UIView我創建兼容的通用應用程序/不同將它們基於iPad或iPhone座標。這是我目前的邏輯來爲這些UIImageViews的UI元素放置與iPhone 5

- (void)setAnimationFrame:(NSString *)imageName iPadFrameX:(int)iPadX iPadFrameY:(int)iPadY iPhoneFrameX:(int)iPhoneX iPhoneFrameY:(int)iPhoneY imageSizePercentForiPad:(CGFloat)imageSizePercentForiPad imageSizePercentForiPhone:(CGFloat)imageSizePercentForiPhone animationNumber:(int)animationNumber imageAnimationView:(UIImageView *)imageAnimationView{ 

    int tagNumber; 
    tagNumber = [self getTagNumber:animationNumber]; 
    UIImage *image = [UIImage imageNamed:imageName]; 
    CGRect frame; 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     frame = CGRectMake(iPadX, iPadY, image.size.width*imageSizePercentForiPad, image.size.height*imageSizePercentForiPad); 
    } 
    else 
    { 
     frame = CGRectMake(iPhoneX, iPhoneY, image.size.width*imageSizePercentForiPhone, image.size.height*imageSizePercentForiPhone); 
    } 

    imageAnimationView.frame = frame; 
    imageAnimationView.image = image; 
    imageAnimationView.tag = tagNumber; 

} 

我通過傳遞圖像陣列通過了我的應用程序UIImageView.animationImages做很多的UIImageView動畫的創建框架。現在什麼是處理iPhone 5兼容性的最佳方式?

難道我添加一個else條件內if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)通過計算它的座標來處理iPhone 5或者有更好的辦法。我會非常感謝你的建議。

+0

考慮將其標記爲答案,如果您的問題得到解答。 –

回答

1

你有2個選擇這裏:

選項1:

爲iPhone 5添加一個條件語句的else語句內

else { 
    if ([[UIScreen mainScreen] bounds].size.height == 568) { 
     // set the frame specific for iPhone 5 
    } else { 
     frame = CGRectMake(iPhoneX, iPhoneY, image.size.width*imageSizePercentForiPhone, image.size.height*imageSizePercentForiPhone); 
    } 
} 

選項2:

使用自動佈局。你可以開始在自動佈局在這裏:
http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
http://www.raywenderlich.com/20897/beginning-auto-layout-part-2-of-2