Ios 如何将模式弹出窗口大小更改为其superview大小?
我在故事板中创建了一个模式弹出窗口,这样,当单击一个图像时,就会出现该图像的弹出窗口,但可以调整大小。我想要的只是使弹出窗口的大小等于superview的大小(以编程方式) 如果需要,我将提供额外的代码Ios 如何将模式弹出窗口大小更改为其superview大小?,ios,swift,xcode,storyboard,modalpopup,Ios,Swift,Xcode,Storyboard,Modalpopup,我在故事板中创建了一个模式弹出窗口,这样,当单击一个图像时,就会出现该图像的弹出窗口,但可以调整大小。我想要的只是使弹出窗口的大小等于superview的大小(以编程方式) 如果需要,我将提供额外的代码 @IBOutlet var imageView: UIView! @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var zoomImageView: UIImageView! @IBOutlet weak var back
@IBOutlet var imageView: UIView!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var zoomImageView: UIImageView!
@IBOutlet weak var backgroundButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setNavigationBarHidden(true, animated: false)
imageView.layer.cornerRadius = 10
imageView.layer.masksToBounds = true
self.scrollView.minimumZoomScale = 1.0
self.scrollView.maximumZoomScale = 6.0
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return self.zoomImageView
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
if UIDevice.current.orientation.isLandscape{
imageView.center = self.view.center
imageView.frame = view.frame
} else if UIDevice.current.orientation.isPortrait{
imageView.center = self.view.center
imageView.frame = view.frame
}
}
@IBAction func showImageView(_ sender: Any) {
animateIn()
}
@IBAction func closeImageView(_ sender: Any) {
animateOut()
}
func animateIn() {
self.scrollView.zoomScale = 1.0
self.view.addSubview(imageView)
imageView.center = self.view.center
imageView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
imageView.alpha = 0
self.backgroundButton.alpha = 0.7
UIView.animate(withDuration: 0.4) {
self.imageView.alpha = 1
self.imageView.transform = CGAffineTransform.identity
}
}
func animateOut() {
UIView.animate(withDuration: 0.3, animations: {
self.imageView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
self.imageView.alpha = 0
self.backgroundButton.alpha = 0
}) { (success:Bool) in
self.imageView.removeFromSuperview()
}
}
}
任何帮助都将不胜感激。终于找到了答案 而不是:
imageView.frame = self.view.frame
我只需要使用:
imageView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height)
在animateOut()块中,我将变换比例更改为1
self.image.transform = CGAffineTransform(scaleX: 1, y: 1)
所有这些都解决了问题。请提供代码。回答这个问题很有帮助!事实上,我刚想出来。我会发布我的答案。这真的很简单(有点像)。我给出的答案似乎有点小问题。尽管在单击图像时子视图的大小会正确调整,但手机旋转似乎会影响大小调整。下次单击图像时,它的大小不合适(但更小)。提供了代码。希望有帮助。