ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS Programming] iOS6 -> iOS7 해상도 대응 삽질기!
    0x05 Programming/iPhone Programing 2013. 12. 15. 23:38

    안녕하세요. 오랜만에 블로그에 글을 남깁니다. 

    그동안 블로그를 쓰지못하고있다가 다시 프로그래밍을 하게되면서 저의 개발과정에서 있었던 정보들을 정리하고 

    여러분들과 정보를 공유하고자 합니다. 저의 삽질기가 여러분에게 많은 도움이 되길 바라면서 글을 적습니다. 


    iOS6과  iOS7에서 발생하는 해상도 이슈!


    한동안 iOS프로그래밍을 하지않고있다가 오랜만에 만지게 되니 어이없는 경우를 발견하게 됩니다. 

    그것은 바로 iOS6  와 iOS7의 frame이 다르게 적용된다는 점이에요.  6버전에서 잘돌아가던 코드는 7버전에서 

    상태바(Status bar)를 침범한 상태로 화면에 표시가 됩니다.  7에서는 상태바 (Status bar)의 frame도 고려해서 작업하셔야 됩니다. 쉽게 말하자면 7버전 기준으로 아래로 20px 내려서 작업하셔야 됩니다. 


    반대로 7에서 20px 내려서 작업하시면 6버전에서는 20px 아래로 내려간 상태로 보이게 되겠지요. 

    이러한 문제로 인해 해당 기기의 iOS버전을 판별하여 버전에 맞게 프레임을 수정하는 코드가 필요합니다. 


            if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)

            {

                  NSLog(@"iOS7 입니다.");       

     self.view.frame = CGRectMake(0.0f, 20.0f, self.view.bounds.size.width, self.view.bounds.size.height);

            }

            else

            {

                  NSLog(@"iOS6 입니다.");

     self.view.frame = CGRectMake(0.0f, 0.0f, self.view.bounds.size.width, self.view.bounds.size.height);

            }


    해당 코드를 이용하여 작업해주시면 되겠습니다. 

    저같은 경우는 viewDidLoad에서 해당 조건문을 이용하여 self.view의 프레임을 잡습니다.

    이미 다들 알고계시겠지만 저처럼 헤매실수 있는 초보개발자분들을 위해 유용하게 쓰이길 바라겠습니다. 

    더 좋은 방법이 있다면 알려주시고 틀린점이 있다면 댓글을통해 피드백 부탁드릴게요 ^^ 



Designed by Tistory.