Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当UIImageView在viewController中实例化时,如何设置其大小/帧和内容模式?_Ios_Xcode_Swift - Fatal编程技术网

Ios 当UIImageView在viewController中实例化时,如何设置其大小/帧和内容模式?

Ios 当UIImageView在viewController中实例化时,如何设置其大小/帧和内容模式?,ios,xcode,swift,Ios,Xcode,Swift,我的应用程序有一个视图控制器,可以像这样稳定previewView、capturedImage和CapturedImageView class ViewController: UIViewController, AVCaptureFileOutputRecordingDelegate, UIGestureRecognizerDelegate { @IBOutlet weak var previewView: AVCamPreviewView! var capturedImage

我的应用程序有一个视图控制器,可以像这样稳定previewView、capturedImage和CapturedImageView

class ViewController: UIViewController, AVCaptureFileOutputRecordingDelegate, UIGestureRecognizerDelegate {
    @IBOutlet weak var previewView: AVCamPreviewView!

    var capturedImage: UIImage!
    var capturedImageView: UIImageView!
}
previewView位于main.storyboard上,但capturedImage和CapturedImageView不在其中。我希望capturedImageView与previewView的大小完全相同,因此通常我会执行类似的操作
让capturedImageView=UIImageView(frame:self.previewView.frame)

但我似乎无法在函数之外使用这种语法。此外,我不确定previewView是否真的存在,我还无法做到这一点

它抱怨类型为“NSObject->()->ViewController”的
值没有成员“previewView”

所以我认为它不是

那么也许我可以在viewDidLoad中完成它?但是我也不认为我可以只使用
self.capturedImageView=UIImageView(frame:self.previewView.frame)
当我尝试它时,我收到了一条长长的毛茸茸的错误消息(应用程序冻结了):

Swift的函数签名专门化。(_fatalErrorMessage(Swift.StaticString,Swift.StaticString,Swift.StaticString,Swift.UInt)->()。(闭包#2)
有什么建议吗?

我不知道你想做什么有多清楚-在你给出的代码中,你没有实例化任何东西

如果您试图直接使用视图控制器中的声明实例化
capturedImageView
,并引用同一视图控制器中的另一个属性,您将无法这样做,因为只有在完全实例化
self
(即视图控制器)后才能引用它,在这之前,它的所有属性都必须完全初始化

因此,您应该实例化没有框架的
capturedImageView
(因此不引用
self
),然后稍后设置其框架(例如在
viewDidLoad
中),或者您可以将
capturedImageView
设置为惰性属性(然后可以引用
self
,因为只有在视图控制器完全实例化之后才会实例化它


如果要使视图框架彼此相等,当然最好使用autolayout,但这是一个单独的问题。

我不确定您要做的是什么-在您给出的代码中,您没有实例化任何内容

如果您试图使用视图控制器中的声明直接实例化
capturedImageView
,并引用同一视图控制器中的另一个属性,您将无法执行此操作,因为您只能引用
self
(即视图控制器)一旦完全实例化,它的所有属性都必须在完全初始化之前进行初始化

因此,您应该实例化没有框架的
capturedImageView
(因此不引用
self
),然后稍后设置其框架(例如在
viewDidLoad
中),或者您可以将
capturedImageView
设置为惰性属性(然后可以引用
self
,因为只有在视图控制器完全实例化之后才会实例化它

如果要使视图帧彼此相等,当然最好使用autolayout,但这是另一个问题

function signature specialization <Arg[0] = Exploded, Arg[1] = Exploded> of Swift.(_fatalErrorMessage (Swift.StaticString, Swift.StaticString, Swift.StaticString, Swift.UInt) -> ()).(closure #2)