2017-11-30 8 views
-1

iPhone 6 Plus에서 제대로 작동하는 앱을 만들었습니다. 응용 프로그램은 분명히 카메라를 시작 QRCode 스캔 기능이 포함되어 있습니다. 카메라를 실행할 때 내 iPhone 6 Plus에서는 전체 화면으로 작동하지만 iPhone X에서는 작동하지 않습니다. 카메라는 여전히 작동하지만 카메라보기 위아래에 흰색 막대가 있습니다. 어떤 팁? 여기 (iPhoneX) 카메라를 실행할 때 화면의 위쪽과 아래쪽 공백

스캐너의 코드입니다 :

import UIKit 
import AVFoundation 
import SafariServices 

class Attend: UIViewController, AVCaptureMetadataOutputObjectsDelegate { 

@IBOutlet weak var border: UIImageView! 

var video = AVCaptureVideoPreviewLayer() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let session = AVCaptureSession() 

    let captureDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) 

    do 
    { 
     let input = try AVCaptureDeviceInput(device: captureDevice) 
     session.addInput(input) 
    } 

    catch 
    { 
     print ("ERROR") 
    } 

    let output = AVCaptureMetadataOutput() 
    session.addOutput(output) 

    output.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) 

    output.metadataObjectTypes = [AVMetadataObjectTypeQRCode] 

    video = AVCaptureVideoPreviewLayer(session: session) 
    video.frame = view.layer.bounds 
    view.layer.addSublayer(video) 

    self.view.bringSubview(toFront: border) 

    session.startRunning() 


} 


func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) { 
    if metadataObjects != nil && metadataObjects.count != 0 
    { 
     if let object = metadataObjects[0] as? AVMetadataMachineReadableCodeObject 
     { 
      if object.type == AVMetadataObjectTypeQRCode 
      { 
       let alert = UIAlertController(title: "QR Code", message: object.stringValue, preferredStyle: .alert) 
       alert.addAction(UIAlertAction(title: "Retake", style: .default, handler: nil)) 
       alert.addAction(UIAlertAction(title: "Open", style: .default, handler: { (nil) in 
        UIPasteboard.general.string = object.stringValue 
        self.loadSafari(url: object.stringValue) 
       })) 
       present(alert, animated: true, completion: nil) 

      } 
     } 
    } 

} 


func loadSafari(url : String){ 
    guard let url = URL(string: url) else { return } 

    let safariController = SFSafariViewController(url: url) 
    present(safariController, animated: true, completion: nil) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 




} 
+0

흰색 영역은 안전하다고 여깁니다. 여백, self.view는 해당 영역을 넘어서지 않으며, 센서 막대 또는 맨 아래 줄 뒤에 숨어있는보기로 끝내기를 원하지 않습니다. –

+0

답장을 보내 주셔서 감사합니다. 하지만 카메라를 전체 화면으로 만 실행하고 싶습니다. 나는 센서 바 부분에 신경 쓰지 않습니다. – Ibrahim

+0

UIApplicationWindow에 추가 할 수 있습니다. –

답변

0

1 - 대신 실행 이미지의 LaunchSceen.storyboard를 사용 - 수익 컷 문제가 해결 될 것입니다 2 -보기

의 안전 영역에서 상위 제약을