双击将图像移动到其他视图

Posted

技术标签:

【中文标题】双击将图像移动到其他视图【英文标题】:Move image to other view with double tap 【发布时间】:2016-12-09 02:17:15 【问题描述】:

我是 Swift 新手,我正在寻找一种通过控制器的方法。 我把我的图片做成了滚动视图,所以我可以滑动来查看它。

这是我的代码。

class Quotes: UIViewController, UIScrollViewDelegate 

   @IBOutlet weak var scroll: UIScrollView!

let imageview = ["quotes1","quotes2","quotes3","quotes4"]
var imagine = UIImageView()
override func viewDidLoad() 
    let tap = UITapGestureRecognizer(target: self, action: #selector(doubletap))
    tap.numberOfTapsRequired = 2
    view.addGestureRecognizer(tap)
    self.navigationController?.setNavigationBarHidden(true, animated: true)
    quotesimageload()
    
func quotesimageload() 
    for index in 0 ... imageview.count - 1
    
        imagine = UIImageView (frame:CGRect(x: self.scroll.frame.width * CGFloat(index), y: 0 , width: self.scroll.frame.width, height: self.scroll.frame.height))
        imagine.image = UIImage(named : imageview[index])
        imagine.tag = index
        imagine.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        self.scroll.addSubview(imagine)
    
    self.scroll.contentSize = CGSize(width: self.scroll.frame.width * CGFloat(imageview.count), height: self.scroll.frame.height)
  
func doubletap()
    let view = self.storyboard?.instantiateViewController(withIdentifier: "pinch")
    self.navigationController?.pushViewController(view!, animated: true)

        

【问题讨论】:

【参考方案1】:

您不会将图像完全移动到另一个视图控制器 - 您将其副本传递给目标 VC。

在第二个 VC 中设置一个“var” UIImage(假设您将其称为图像),然后在将该 VC 推送到视图中之前,从第一个 VC 中填充它。

还有一点需要注意 - 将 UIViewController 命名为“视图”可能会非常令人困惑,因为许多人会认为它是 UIView。所以假设你把它重命名为 pinchViewController,完整的语法是:

第二个VC:

var image:UIView!

第一个 VC:

func doubletap()
    let  pinchViewController = self.storyboard?.instantiateViewController(withIdentifier: "pinch")
    pinchViewController.image = imagine.image
    self.navigationController?.pushViewController(view!, animated: true)

如果你在 IB 中有正确编码和/或连接的东西,你应该在第二个 VC 中使用 UIImageView 来显示图像。

【讨论】:

感谢您的回答,在我这样做之后它对我有用 let pinchViewController = self.storyboard?.instantiateViewController(withIdentifier: "pinch") as! Viewcontroller2name.. 我真的很感激@dfd :D 但是当我双击它时,随机图像显示在下一个视图控制器@dfd 需要使用scrollview的selectedImageIndex来表示选择了哪张图片。抱歉,我忘记了那部分。

以上是关于双击将图像移动到其他视图的主要内容,如果未能解决你的问题,请参考以下文章

使用 RESideMenu 移动到其他视图

将其他视图移动到隐藏的视图[关闭]

从任何其他视图控制器移动到任何几个视图控制器

为啥当附加到 nil 图像时,帧修饰符仍然会影响其他视图?

怎样把(波形)声音格式(wav)转换成mp3、wma等其他音频格式?

在 laravel 中解码和移动 base64 编码的图像