iOS快速如何准确地在uiview中放置imageview

时间:2016-06-07 15:44:03

标签: ios swift uiview uiimageview

我遇到了一个问题,我以编程方式创建了一个imageView,然后将其添加到中心视图中,这是一种有效的方法。但问题是,在中心视图中没有占据整个空间,在uiview中看起来是肯定的,但并不总是覆盖所有空间。有什么帮助吗?

代码:

//let backgroundImage = UIImageView(frame: centerView.frame)
            let backgroundImage: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.centerView.bounds.size.width, height: self.centerView.bounds.size.height))
            print("backgorundImage coordinates: \(backgroundImage.frame)")
            backgroundImage.image = drawOverImage
            backgroundImage.sizeThatFits(CGSizeMake(centerView.bounds.width, self.centerView.bounds.height))
            //check this the image is being drawn bottom because is the fame for the previous 0.0
            //backgroundImage.autoPinEdgeToSuperviewMargin(ALEdge.Top, relation: NSLayoutRelation.Equal)
            //backgroundImage.contentMode =  UIViewContentMode.ScaleAspectFill //too big
            //backgroundImage.contentMode = UIViewContentMode.ScaleAspectFit     //sama
            backgroundImage.contentMode = UIViewContentMode.ScaleAspectFill
            backgroundImage.clipsToBounds = true
            //imageView.image = background
            backgroundImage.center = view.center

            let coordinatesForImage: CGRect = self.view.convertRect(backgroundImage.frame, toView: centerView)
            let pointOfImage: CGPoint = backgroundImage.convertPoint(self.centerView.frame.origin, toView: backgroundImage)

            print("coordinates test: \(coordinatesForImage)")
            print("point x: \(pointOfImage.x)")
            print("point y: \(pointOfImage.y)")

            //backgroundImage.contentMode = UIViewContentMode.ScaleToFill
            self.centerView.insertSubview(backgroundImage, atIndex: 0)


            let pointOfImageToSuperView: CGPoint = (backgroundImage.superview?.convertPoint(backgroundImage.center, toView: self.centerView))!

            print("superview imagepoint: \(pointOfImageToSuperView)")

评论是我试图做的所有事情。

编辑: 这就是正在发生的事情。

Missing bottom

我从底部遗漏了一点,现在我不知道图像的大小或者是什么,我可以更改uiview的大小以匹配图像吗?

1 个答案:

答案 0 :(得分:1)

只需尝试:

let backgroundImage: UIImageView = UIImageView(frame: self.centerView.bounds)
backgroundImage.clipsToBounds = true
backgroundImage.contentMode = .ScaleAspectFill
self.centerView.addSubview(backgroundImage)