在超级视图swift中泛UImage

时间:2015-07-14 02:49:00

标签: ios swift uiview pan

我尝试使用平移手势在其超级视图中移动UIImageView,尽管我能够让superview在self.view中移动我无法移动其中一个它的子视图本身。

这些是我的代码中的相关行

let couponOutline = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 424))

let imageView = UIImageView(image: UIImage(named: "ImagePlaceHolder"))
imageView.frame = CGRect(x: 0, y: 0, width: 128, height: 128)
imageView.center = CGPoint(x: 230, y: 300)

couponOutline.addSubview(imageView)
self.view.addSubview(couponOutline)

let panRec = UIPanGestureRecognizer(target: self, action: "moveView:")
    panRec.minimumNumberOfTouches = 1
    imageView.addGestureRecognizer(panRec)
在moveView:方法中

func moveView(sender: UIPanGestureRecognizer) {

    println("pan")

    let couponOutline = view.subviews[0] as! UIView

    print(couponOutline)

    var translation = sender.translationInView(self.view)

    sender.view?.center = CGPoint(
        x: sender.view!.center.x + translation.x,
        y: sender.view!.center.y + translation.y)

    sender.setTranslation(CGPoint(x: 0, y: 0), inView: couponOutline)

我试图在couponOutline中移动imageView,当我使用此代码时,根本不会选择手势(println(" pan")未显示)。

2 个答案:

答案 0 :(得分:0)

我要做的是使用UIScrollView。按照下面链接的教程(转到“滚动和缩放大图像”)

Ray Wnederlinch UIScrollView tutorial

答案 1 :(得分:0)

滚动视图对我计划添加的某些功能不会有用,我终于找到了解决方案 - 我需要做的就是设置imageView.userInteractioEnabled = true