【问题标题】:Swift: Full screen UIImageView not workingSwift:全屏 UIImageView 不起作用
【发布时间】:2017-10-02 15:52:55
【问题描述】:

使用 Swift,我想单击一个较小的图像视图,然后将其扩展到设备的全屏,再次单击以返回到之前的默认大小。

这是我拥有的代码,但是当单击它时,它不会像中那样扩展到全屏,而是扩展到视图宽度。

我的主视图顶部有一个弹出 UIView 以显示为弹出窗口,并且图像扩展到该弹出视图而不是整个屏幕。

在点击 imageView 之前

点击imageVjew后

如何实现 imageView 的全屏显示?

@IBOutlet var backgroundView: UIView!
@IBOutlet weak var popUpView: UIView!
@IBOutlet weak var iconImage: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
    iconImage.addGestureRecognizer(tapGesture)

}

@IBAction func handleTap(_ gesutureRecognizer: UITapGestureRecognizer) {

    let screenSize = UIScreen.main.bounds
    let screenWidth = screenSize.width
    let screenHeight = screenSize.height
    iconImage.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenHeight)
}

【问题讨论】:

  • 子视图会和superview绑定,如果直接的superview不是全屏的,那么subview怎么办?
  • 如果您在代码中创建 handleTap(_:)@IBAction,为什么?将@IBAction 更改为@objc,看看是否有区别。
  • 在更改框架后尝试在iconImage 上调用layoutIfNeeded()
  • 您的图像视图使用什么内容模式?按比例填充?方面填充?方面适合?
  • 即使你解决了这个问题(我相信你会的,在我看来并不难),imageView 会改变它的框架而没有动画,这不是最好的用户体验。尝试更改 iconImage 框架动画 - 您可以通过更改自动布局约束或直接为框架设置动画来做到这一点。

标签: ios swift uiview uiimageview


【解决方案1】:

您可以按照本教程的逻辑,但不是为“弹出窗口”创建 UIViewController,您可以创建一个 UIViewController 并在全屏模式下使用 imageView。

https://www.youtube.com/watch?v=FgCIRMz_3dE&t=430s

【讨论】:

  • 是的,没错,我可以创建另一个视图控制器来模拟 imageView 的全屏。我以为有更简单的方法
猜你喜欢
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
相关资源
最近更新 更多