当前位置: 首页 > 面试题库 >

UIImageView捏缩放迅速

韩乐湛
2023-03-14
问题内容

我希望有人可以帮助我。我试图允许用户捏UIImageView(允许最大和最小级别)上的缩放。但是由于某种原因,它无法正常工作。图像会稍微放大,然后反弹。谢谢。

这是变焦功能

func zoom(sender:UIPinchGestureRecognizer) {


    if sender.state == .Ended || sender.state == .Changed {

        let currentScale = self.view.frame.size.width / self.view.bounds.size.width
        var newScale = currentScale*sender.scale

        if newScale < 1 {
            newScale = 1
        }
        if newScale > 9 {
            newScale = 9
        }

        let transform = CGAffineTransformMakeScale(newScale, newScale)

        self.imageView?.transform = transform
        sender.scale = 1

    }

}

问题答案:

我决定将imageView添加到UIScrollView中。它允许用户缩放和平移。这是我使用的代码。

为了设置最大/最小缩放,我使用了:

    scrollImg.minimumZoomScale = 1.0
    scrollImg.maximumZoomScale = 10.0

这是其余的代码。

    var vWidth = self.view.frame.width
    var vHeight = self.view.frame.height

    var scrollImg: UIScrollView = UIScrollView()
    scrollImg.delegate = self
    scrollImg.frame = CGRectMake(0, 0, vWidth!, vHeight!)
    scrollImg.backgroundColor = UIColor(red: 90, green: 90, blue: 90, alpha: 0.90)
    scrollImg.alwaysBounceVertical = false
    scrollImg.alwaysBounceHorizontal = false
    scrollImg.showsVerticalScrollIndicator = true
    scrollImg.flashScrollIndicators()

    scrollImg.minimumZoomScale = 1.0
    scrollImg.maximumZoomScale = 10.0

    defaultView!.addSubview(scrollImg)

    imageView!.layer.cornerRadius = 11.0
    imageView!.clipsToBounds = false
    scrollImg.addSubview(imageView!)

我也必须添加它

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    return self.imageView
}

Swift 3及以上功能原型

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return self.mainImage
}


 类似资料:
  • 问题内容: 我有一个带有RelativeLayout和的私有类的活动,它扩展了。在onScale听众的方法中,我想通过用户展开/捏手指来放大/缩小整个布局(用户看到的一切)。 我想改变的布局不被永久的,即当病毒/捏合手势是在我想的布局回去这是什么在首位(任何复位可能在做onScaleEnd的方法SimpleOnScaleGestureListener例如)。 我试图通过调用和在上以及还使用来实现它

  • 问题内容: 我想在Viewview上实现类似于ImageView的Pinch Zoom,类似于默认的Android Gallery。我在GitHub上找到了多个源,但是缩放和滑动仅适用于第一张图片。 我试过的 1.)TouchImageView 2.)PhotoView 3.)Android Touch Gallery 以上所有链接都适用于单个图像视图。但是,当涉及View Pager中的图像时,

  • 我有一个应用程序,我需要实现图像编辑,其中也包括捏缩放。我已经完成了缩放,但是我只能在设备上测试,不能在模拟器上测试。 android模拟器中有没有测试捏放缩放的方法,有没有快捷键或者其他什么方法?

  • 我将描述我想要实现的效果,然后我将详细说明我目前如何尝试实现这一点,以及它的行为有什么问题。我还要提到另一种我看过但根本无法工作的方法。 最相关的代码内嵌在问题的底部,以便快速访问。您可以下载源代码的zip文件,或者在BitBucket上获得作为Mercurial资源库的项目。该项目现在合并了以下答案中的修复。如果您想要最初提供的不完整版本,它会被标记为“初始错误版本” 该项目是一个极小的概念验证

  • 问题内容: 我需要实现变焦为包含在。我已经通过覆盖方法和调用来成功进行缩放。 这是不正常:对的和的规模如预期,但一定会得到的和这样的寄存器在预分频的位置。我能做什么?感谢您的阅读。 问题答案: 显示了如何使用明确的转化方法扩展鼠标坐标:,,和。)。

  • 问题内容: 注意:这与放大时如何渲染现有画布元素有关,而与在画布表面上渲染线条或图形无关。换句话说,这与缩放元素的插值有关,而与在画布上绘制的图形的抗锯齿无关。我不关心浏览器如何画线;我关心的是浏览器在放大时如何渲染canvas元素本身。 是否可以通过编程更改画布属性或浏览器设置以在缩放 元素时禁用插值?跨浏览器解决方案是理想的,但不是必需的。基于Webkit的浏览器是我的主要目标。性能非常重要。