我为什么要定义框架来显示UIImageView?

时间:2018-01-12 13:21:57

标签: ios swift uiimageview

当我以这种方式定义图像时:

var imageView : UIImageView
imageView  = UIImageView(frame:CGRect(x:10, y:50, width:100, height:300))
imageView.image = UIImage(named:"Test.jpeg")
self.view.addSubview(imageView)

效果很好,图像出现在屏幕上,但为什么要定义框架?为什么我刚刚定义的中心参数图像没有出现在屏幕上? (在初始化期间,imageView知道它的高度和宽度,我只是添加中心点来查看)

3 个答案:

答案 0 :(得分:0)

你不应该。 这是可能的选择之一。

您可以使用默认初始化初始化它:

UIImageView()

或带图片:

imageView = UIImageView(image: UIImage(named:"Test.jpeg")!)

但请注意,有很多选项可以显示图像:https://developer.apple.com/documentation/uikit/uiview/1622619-contentmode

答案 1 :(得分:0)

不,imageView没有将其作为宽度和高度的真实尺寸,你应该使用框架布局来给它大小或自动布局,除非你先用图像初始化它

答案 2 :(得分:0)

如果您使用图像初始化UIImageView,那么您是对的,根据图像大小设置框架。但是在您的代码段中,您使用框架初始化UIImageView并稍后设置图像,这会保留视图框架。作为替代方案,请在设置图片后调用sizeToFit