【问题标题】:Can't see my button when I run the program on my iPhone在 iPhone 上运行程序时看不到我的按钮
【发布时间】:2018-01-01 12:22:52
【问题描述】:

为什么我在运行程序时看不到我的按钮,但在 Xcode 8 中我可以看到它。它在视图上方,看起来就像您在 snapchat 中按下以拍照的按钮。

我是 Xcode 的新手,所以如果我需要了解有关 Xcode 或故事板的任何信息,可以帮助我解决这些问题,请告诉我。

视图代码:

 import UIKit
 import AVFoundation
 import QuartzCore

 class View1: UIViewController , AVCaptureVideoDataOutputSampleBufferDelegate{

let captureSession          = AVCaptureSession()

var previewLayer:               CALayer!

var captureDevice:              AVCaptureDevice!


@IBOutlet weak var cameraView:  UIView!

override func viewDidLoad() {
    super.viewDidLoad()


}


/*



 This is a function to prepair the camera

 and check that there is a camera.



 If there isn't a camera on the device

 then get you will get a error.



 */

func prepareCamera()

{



    captureSession.sessionPreset     = AVCaptureSessionPreset1920x1080





    if let availableDevices                  = AVCaptureDeviceDiscoverySession(deviceTypes: [.builtInWideAngleCamera],
                                                                                                                           mediaType: AVMediaTypeVideo,
                                                                                                                           position: .back).devices

    {



        captureDevice = availableDevices.first

        beginSession()



    }





}



func beginSession()

{



    do

    {



        let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice)

        captureSession.addInput(captureDeviceInput)



    }

    catch

    {



        print(error.localizedDescription)

        /*



         Figure out what to do here

 */

    }



    if let previewLayer                          = AVCaptureVideoPreviewLayer(session: captureSession)

    {



        self.previewLayer                        = previewLayer

        self.view.layer.addSublayer(
        self.previewLayer)

        self.previewLayer.frame                  = self.view.layer.frame

        self.previewLayer.frame.size             = self.view.layer.frame.size

        captureSession.startRunning()



        let dataOutput                           = AVCaptureVideoDataOutput()

        dataOutput.videoSettings                 = [(kCVPixelBufferPixelFormatTypeKey as NSString
                                                                        ): NSNumber(value: kCVPixelFormatType_32BGRA)]


        dataOutput.alwaysDiscardsLateVideoFrames = true


        if captureSession.canAddOutput(dataOutput)

        {

            captureSession.addOutput(dataOutput)


        }

        captureSession.commitConfiguration()

        let queue = DispatchQueue(label: "com.PhotoAllergy.captureQueue")
        dataOutput.setSampleBufferDelegate(self, queue: queue)



    }









}



//func captureOutput(_ captureOutput: AVCaptureOutput!, didDrop sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) {
//yeeye
//}

override func viewWillAppear(_ animated: Bool) {

    super.viewWillAppear(animated)

    prepareCamera()

}








override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}


 }

【问题讨论】:

  • 请附上您的视图控制器在 Storyboard 中的样子以及运行代码时的样子。如果您从代码中添加任何 UI 元素,请在您的问题中包含代码。你在使用自动布局吗?
  • 您是否在按钮视图中添加了足够的约束?
  • 添加一些截图!
  • @sabarivasagan 我不能因为我需要声誉:(
  • 可能是您正在添加,但它不在视野范围内并且不可见。为您的按钮添加约束并查看包含它。

标签: ios iphone autolayout storyboard


【解决方案1】:

添加约束。 关注这些图片

祝你好运,如果您对此有任何疑问,可以在这里发表评论。

【讨论】:

  • 它对我不起作用。我不知道问题出在哪里,但是如果您想提供其他可能的方法来解决此问题,我添加了一张图片!谢谢!
【解决方案2】:

执行以下操作

在情节提要视图控制器中选择您的按钮,然后按照屏幕截图中的步骤操作 按下按钮添加约束 运行应用程序

请将 viewController 设置为下图中指定的初始视图控制器

【讨论】:

  • 这不起作用,但我添加了一张图片,如果它可以帮助您再次尝试帮助我。谢谢!
  • @PhilipJ 你试过在按钮上添加约束吗?
  • @PhilipJ 从您粘贴的故事板屏幕截图中,我看到它不是根视图控制器。你是如何加载这个视图的?
  • 这是一个 XIB 或 NIB 文件或任何人们喜欢称呼它的文件,是的,我有限制,它们是蓝色的(我认为这很好)。我使用滚动视图,所以我使用了 2 个 XIB(NIB?)文件。
  • @PhilipJ 我更新了答案请检查我附加的下一张图片
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多