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