2017-12-07 5 views
2

내선 파일에 장치를 식별하는 코드를 어떻게 배치 할 수 있습니까?확장 파일에서 장치 감지 (Swift)

if UIDevice().userInterfaceIdiom == .pad { 
     switch UIScreen.main.nativeBounds.height { 
     case 2048: 
      print("iPad Pro 9.7/Air") 
     case 2224: 
      print("iPad Pro 10.5") 
     case 2732: 
      print("iPad Pro 12.9") 
      displayResultLabel.frame = CGRect(x: 2, y: 90, width: 370, height: 91) 
      displayResultLabel.font = displayResultLabel.font.withSize(105) 
     default: 
      print("unknown") 
     } 
    } 
+0

왜 필요합니까] = 클래스

의 이름으로 THE_NAME_OF_CLASS_TO_EXTEND를 교체하고 그 클래스 .. 작동 것보다의 인스턴스의 이름으로 THE_INSTANCE_OF_THE_CLASS_THAT_HAS_THE_NAME_OF_CLASS_TO_EXTEND 교체 확장 파일? – Yitzchak

+0

@Yitzchak 메인 파일에서 공간을 차지하지 않기 위해서 – B2Fq

+0

확장 파일이어야합니까? 아니면 수업이 될 수 있을까요? 새로운 ** 신속한 클래스 파일 **을 추가하십시오. 자동으로 빌드에 추가되고, 확장 또는 클래스에 코드가 저장됩니다. 다른 파일에서도 사용할 수 있습니다. – Yitzchak

답변

2
extension THE_NAME_OF_CLASS_TO_EXTEND { 

    func printDevice() { 
     if UIDevice().userInterfaceIdiom == .pad { 
      switch UIScreen.main.nativeBounds.height { 
      case 2048: 
       print("iPad Pro 9.7/Air") 
      case 2224: 
       print("iPad Pro 10.5") 
      case 2732: 
       print("iPad Pro 12.9") 
       displayResultLabel.frame = CGRect(x: 2, y: 90, width: 370, height: 91) 
       displayResultLabel.font = displayResultLabel.font.withSize(105) 
      default: 
       print("unknown") 
      } 
     } 
    } 
} 

그럼 당신은이를 사용할 수 있습니다

THE_INSTANCE_OF_THE_CLASS_THAT_HAS_THE_NAME_OF_CLASS_TO_EXTEND.printDevice() 

그래서 당신은 새 파일에 해당 코드를 복사해야합니다.

+1

thx @Moritz your'e right – Yitzchak

+0

확장 파일 오류 "사용 신고되지 않음 타입 : 'THE_NAME_OF_CLASS_TO_EXTEND' " – B2Fq

+0

당신의 클래스의 이름으로 바꿉니다. (그런데 방금 코드를 수정했습니다 .. 지금 복사하십시오) – Yitzchak