【问题标题】:Moving UIView within UIImageView's UIImage in Swift在 Swift 中的 UIImageView 的 UIImage 中移动 UIView
【发布时间】:2016-11-10 12:44:05
【问题描述】:

我正在尝试在基本图像上移动一张图像。

如果我移动那个UIView,它会穿过UIImageView's 图像。

如何限制UIView'sUIImageView's 图像内移动?它应该支持正方形和矩形。移动视图不应跨越其边界。

请指导我。

在屏幕截图中,UIImageView 背景颜色为黑色。 移动UIView 为白色。白色视图正在穿过其图像 [屏幕截图 2]。如何在图片内进行限制?

代码:

 @IBAction func panAcn(sender: UIPanGestureRecognizer) {

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

        let translation = sender.translationInView(self.myImgVw)
        // note: 'view' is optional and need to be unwrapped
        sender.view!.center = CGPointMake(sender.view!.center.x + translation.x, sender.view!.center.y + translation.y)
        sender.setTranslation(CGPointMake(0,0), inView: self.myImgVw)
    }
 }

需要输出:

我的输出

【问题讨论】:

  • 在 UIImageView 上添加 UIView 并显示一些代码。
  • UIView 是 UIImageView 的子视图吗?
  • No.. UIView 是独立的。

标签: swift uiview uiimageview uiimage uipangesturerecognizer


【解决方案1】:

你可以试试这个:

 @IBAction func panAcn(sender: UIPanGestureRecognizer) {

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

        let translation = sender.translationInView(self.myImgVw)
        // note: 'view' is optional and need to be unwrapped
        guard let view = sender.view else { return }
        var newFrame = view.frame
        newFrame.origin.x = max(self.myImgVw.frame.origin.x, view.frame.origin.x + translation.y)  
        newFrame.origin.y = max(self.myImgVw.frame.origin.y, view.frame.origin.y + translation.y)
        view.frame = newFrame        
    }
 }

【讨论】:

  • 不工作@bobby
  • 需要在 imageview 的视图中移动视图
猜你喜欢
  • 1970-01-01
  • 2015-04-26
  • 2019-10-17
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多