gpt4 book ai didi

ios - 为什么我无法在 ios swift 应用程序中设置 UIScrollView 的默认缩放?

转载 作者:行者123 更新时间:2023-11-30 13:35:40 28 4
gpt4 key购买 nike

我有一个带有 UIScrollView 的 UIViewController在上面。我希望我的应用程序具有如下行为:

1) 用户打开应用程序并看到正常尺寸的照片(UIScrollView 的默认尺寸)

2)当用户单击照片时,它会进入全屏,并且用户还可以放大和移动照片

3) 当用户在全屏模式下再次单击照片时,它会从第 1) 点缩小到原始尺寸,并且缩放和移动被禁用。

为了处理滚动和移动照片,我决定使用这个插件:https://github.com/huynguyencong/ImageScrollView

我的代码如下:

@IBOutlet weak var requestPhoto: ImageScrollView!

var originalPhotoSize :CGRect?
var isPhotoOnFullScreen: Bool = false

override func viewDidLoad() {
super.viewDidLoad()

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:")

self.requestPhoto.addGestureRecognizer(tapGestureRecognizer)
self.requestPhoto.userInteractionEnabled = true

originalPhotoSize = requestPhoto.frame
}


override func viewDidAppear(animated: Bool) {
super.viewWillAppear(animated)
requestPhoto.scrollEnabled = false
requestPhoto.pinchGestureRecognizer?.enabled = false
requestPhoto.panGestureRecognizer.enabled = false
requestPhoto.zoomScale = 1
}

func tapHandler(sender: UITapGestureRecognizer) {

if sender.state == .Ended {
if(isPhotoOnFullScreen == true){
self.requestPhoto.frame = originalPhotoSize!
self.requestPhoto.zoomScale = 1
self.requestPhoto.pinchGestureRecognizer?.enabled = false
self.requestPhoto.scrollEnabled = false
isPhotoOnFullScreen = false
}else{
self.requestPhoto.frame = self.view.frame
self.requestPhoto.pinchGestureRecognizer?.enabled = true
self.requestPhoto.scrollEnabled = true
isPhotoOnFullScreen = true
}

}
}

我的具体问题是:

1) 当用户打开应用程序时,他可以捏合缩放小照片(即使我在 requestPhoto.pinchGestureRecognizer?.enabled = false 中设置了 viewDidLoad )

2) 当用户点击照片时,它会全屏打开。这很好,但是当他捏合缩放并在某个时候单击照片时,它会返回到小尺寸,但缩放级别未设置为默认值(即使我设置 self.requestPhoto.zoomScale = 1 )

你能帮我解决上面的两个问题吗?

====编辑

谈论问题号。 1 - 当用户打开应用程序时,他可以捏合缩放照片,但是当他全屏打开图像并返回到正常模式时 - 则缩放被禁用。为什么它没有从一开始就被禁用?

谈论问题号。 2 - 不知何故这条线self.requestPhoto.zoomScale = 1当我打印self.requestPhoto.zoomScale的值时不起作用将其设置为 1 后,它仍然有一些不同的值,我不确定是这个插件( https://github.com/huynguyencong/ImageScrollView )的错误还是我做错了什么?

最佳答案

您可以使用原生UIScrollView来完成您的成就。您不需要使用第三方SDK。

如果您选择使用 native ScrollViewDelegate 构建应用,则可以使用此 scrollView delegate 方法来设置缩放 级别。

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
scrollView.minimumZoomScale = 1
scrollView.minimumZoomScale = 10
return self.imageView // Your Image View.
}

关于ios - 为什么我无法在 ios swift 应用程序中设置 UIScrollView 的默认缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36101561/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com