한 화면에 있는 텍스트를 모두 확대하는 방법

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • dbtmdals2002
      참가자
      • 글작성 : 2
      • 답글작성 : 3
      1,210 포인트

      xcode설정이 아니라 버튼을 구현해서 클릭하면 화면에 있는 텍스트를 모두 확대하고 싶은데

      개별적으로 폰트 사이즈를 일일이 코딩하는 것이 아니라 한번에 확대하는 방법이 있는지 궁금합니다ㅠ..

      • 이 게시글은 dbtmdals2002에 의해 3 weeks, 6 days 전에 수정됐습니다.
      0
    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 510
      16,390 포인트

      질문이 무슨뜻인지 잘 이해가 안가네요^^;
      텍스트의 크기 조절과 관련된 기능은 Accessibility, Large Text, Dynamic types 등이 있습니다.

      0
      • dbtmdals2002
        참가자
        • 글작성 : 2
        • 답글작성 : 3
        1,210 포인트

        죄송합니다 너무 설명없이 썼나보네요ㅠㅠ

        한 화면에서 label이나 button등에 있는 텍스트 크기들을 특정 이벤터버튼을 클릭했을때 모두 한번에 확대가 되게 구현하고 싶습니다.

        objective c를 사용하고 있고 텍스트를 키우는 방법으로 [label setFont:[UIFont systemFontOfSie:size*1.5]]; 이런 형식으로 짰는데

        label 마다 일일이 다 저 코드를 짜는게 제대로된 방법이 아닌것 같고, 한번에 전체 뷰 안에 있는 모든 텍스트들을 한번에 키울 수 있는 방법이 있을까 찾고 있습니다..

        이러한 방식이 있을까요…?

        0
        • 야곰
          키 마스터
          • 글작성 : 37
          • 답글작성 : 510
          16,390 포인트

          상황에 따라서 방법이 많이 달라질 것 같아요.

          한 화면 안에서만 일시적으로 적용하는 것인지, 한 화면이 아니라 앱 전체적으로 적용되어야 하는 부분인지,
          또, 지금 한 번만 적용하면 되는 것인지, 아니면 설정해둔 것이 차후에도 유지가 되어야 하는 것인지…

          정말 상황과 방법이 너무 많아서 키워드 추천도 어렵네요…

          앱 전체적으로 적용해야 한다면 setting에 대해 알아보면 좋고요, User Defaults에 대해 알면 좋습니다.
          https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/UserDefaults/AccessingPreferenceValues/AccessingPreferenceValues.html

          그게 아니고 한 화면에만 일시적으로 적용하는 것이라면 해당 view의 subviews 를 순회하면서 적용하는게 가장 간단하겠구요.

          for (UIView *view in [self.view subviews])
          {
              // kindOfClass 등을 통해 view의 타입 확인 후 해줄 것 적용...
          }
          

          아니면 적용 필요한 레이블이나 버튼을 서브클래싱해서 NSNotificationCenter를 활용해서 노티피케이션을 받게 하는 방법도 있겠네요.

          +2
          avataravatar
          • dbtmdals2002
            참가자
            • 글작성 : 2
            • 답글작성 : 3
            1,210 포인트

            감사합니다ㅜㅜ한 화면에만 일시적으로 적용시키는건데 말씀해주신 방법으로 적용해봐야겠네요 감사합니다!

            +1
            avatar
1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 260-27-00477
통신판매업 신고번호 : 제 2020-충북청주-0663 호
고객센터 : 카카오톡채널 @yagom