2012-09-21 3 views
0

UIView에 많은 UiImageViews가 있고 Ipad 또는 iPhone 좌표에 따라 다르게 작성/배치합니다. 다음은 이러한 UIImageViewsiPhone5와 호환되는 범용 앱용 UIElement 배치

- (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 호환성으로 이러한 시나리오를 처리하는 가장 좋은 방법은 무엇입니까?

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 내부에 다른 조건을 추가하여 iPhone 5를 좌표를 계산하거나 더 나은 방법으로 처리 할 수 ​​있습니까? 나는 당신의 제안에 크게 감사 할 것입니다.

+0

이 답변으로 마킹을 고려. –

답변

1

현재 2 가지 옵션이 있습니다 :

옵션 1 :

이 다른 문 내부에 아이폰 5에 대한 조건문을 추가하기

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

관련 문제