2016-07-07 96 views
0

我正在研究一個應用程序,該程序允許用戶將最多3個圖像附加到放置的地圖引腳上。目前我有一個小的預覽來查看附加的圖像,它們顯示在UIView上。我試圖讓用戶在按下預覽按鈕後查看全屏圖像。以下是圖像預覽按鈕的例子:按下按鈕全屏查看圖像

enter image description here

下面是相關代碼:

// Image preview 
    img1 = UIButton(frame:TCRectMake(x: 18,y:82,width:80,height:110)) 
    img1.backgroundColor = UIColor.clearColor() 
    img1.contentMode = .ScaleAspectFill 
    img1.clipsToBounds = true 
    img1.addTarget(self, action:"selectImage:", forControlEvents: UIControlEvents.TouchUpInside) 
    popupView.addSubview(img1) 

    img2 = UIButton(frame:TCRectMake(x: 100.8,y:82,width:80,height:110)) 
    img2.backgroundColor = UIColor.clearColor() 
    img2.contentMode = .ScaleAspectFill 
    img2.clipsToBounds = true 
    img2.addTarget(self, action:"selectImage:", forControlEvents: UIControlEvents.TouchUpInside) 
    popupView.addSubview(img2) 

    img3 = UIButton(frame:TCRectMake(x: 183,y:82,width:80,height:110)) 
    img3.backgroundColor = UIColor.clearColor() 
    img3.contentMode = .ScaleAspectFill 
    img3.clipsToBounds = true 
    img3.addTarget(self, action:"selectImage:", forControlEvents: UIControlEvents.TouchUpInside) 
    popupView.addSubview(img3) 

    ... 

// Save image to document 
func saveImageIntoDocument(resizeImage:UIImage,saveCompleted:((String)->())? = nil) 
{ 
    let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first! 

    let timeStamp = "\((Int(Timestamp))).png" 
    let filePath = documentsUrl.relativePath!.stringByAppendingString("/\(timeStamp)") 
    if saveCompleted != nil 
    { 
     saveCompleted!(timeStamp) 
    } 
    UIImagePNGRepresentation(fixRotation(resizeImage))!.writeToFile(filePath, atomically: true) 

} 

這是每個預覽按鈕的代碼:

func image1Click(sender:UIButton) 
{ 
    print(sender.tag) 
} 
func image2Click(sender:UIButton) 
{ 
    print(sender.tag) 
} 
func image3Click(sender:UIButton) 
{ 
    print(sender.tag) 
} 

我新的迅速讓我知道如果我錯過了任何東西:)如果任何人都可以幫助我查看預覽全屏將是偉大的!

回答

0

這應該會幫助你。這段代碼使用手勢,如果你點擊圖片本身,那麼它會全屏顯示,但你至少可以從中獲得一些提示。

它通過創建一個涵蓋一切的新圖像來工作。它有TapGestureRecognizer從其superView隱藏全屏圖像。

@IBAction func imgTapped(sender: UITapGestureRecognizer) { 
    let imageView = sender.view as! UIImageView 
    let newImageView = UIImageView(image: imageView.image) 
    newImageView.frame = self.view.frame 
    newImageView.backgroundColor = .blackColor() 
    newImageView.contentMode = .ScaleAspectFit 
    newImageView.userInteractionEnabled = true 
    let tap = UITapGestureRecognizer(target: self, action: "dismissFullscreenImage:") 
    newImageView.addGestureRecognizer(tap) 
    self.view.addSubview(newImageView) 
} 

func dismissFullscreenImage(sender: UITapGestureRecognizer) { 
    sender.view?.removeFromSuperview() 
} 
+0

感謝您的回覆,似乎沒有什麼,當我實現這個:(也許我做錯了什麼?它應該去哪裏? – Oscar

+0

它應該去的ViewController哪裏是形象的事情發生。 –

+0

是的,我把它但是仍然沒有反應,當點擊預覽:(你知道爲什麼嗎?感謝您的回覆 – Oscar