Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
Swift ios viewDidLoad、VIEWDIDREASE图像控件大小不同_Ios_Swift_Uiimageview - Fatal编程技术网

Swift ios viewDidLoad、VIEWDIDREASE图像控件大小不同

Swift ios viewDidLoad、VIEWDIDREASE图像控件大小不同,ios,swift,uiimageview,Ios,Swift,Uiimageview,我注意到设置为全宽的UiImageView在ViewDid出现之前没有给出正确的宽度 这对我来说有点问题,因为: 我加载了一个自定义徽标图形,可以有任何高/宽 这意味着为了保持比例(和全宽),我设置了一个高度约束以匹配.png文件中的宽度/高度比例 但是,我无法在ViewDid出现之前获得真实的图像宽度-ViewWill也不会出现 我是否缺少一个stage/technique(xcode/ios/swift的新功能)或者我是否需要自己计算,而不依赖于检索uiimageview的宽度?请记住,

我注意到设置为全宽的UiImageView在ViewDid出现之前没有给出正确的宽度

这对我来说有点问题,因为:

  • 我加载了一个自定义徽标图形,可以有任何高/宽
  • 这意味着为了保持比例(和全宽),我设置了一个高度约束以匹配.png文件中的宽度/高度比例
但是,我无法在ViewDid出现之前获得真实的图像宽度-ViewWill也不会出现


我是否缺少一个stage/technique(xcode/ios/swift的新功能)或者我是否需要自己计算,而不依赖于检索uiimageview的宽度?

请记住,
viewDidLoad
仅在加载视图而未将其放在superview上时调用,因此您仍然不知道它的最终帧是什么,它只有您在其xib文件中定义的帧(如果有)

但是当你把它添加到一个超级视图中(以多种方式),然后(在它的自动重定尺寸任务之后)它的帧大小就改变了,你只能在一个超级视图中得到它们
viewdide
method

这通常不是您想要的,因为只有在过渡动画完成后才会调用
viewdide
方法。对,但是在这种情况下,在将视图帧添加到superview之前,您必须自己管理它(也就是说,在viewWillApper中,您可以添加类似self.view.frame=self.view.superview.bounds;/objective-c代码的内容),因此假设我想使用viewWillApper生成一个解决方案。我现在没有得到“frame”从uiimagelogo.frame…但由于大小不正确,我无法使用它。您建议我使用self.view.superview.bounds?我现在会尝试一下,似乎可以工作-我认为应该将代码添加到答案中,但至少在ipad模拟器中可以工作-谢谢!)