2017-04-13 141 views
0

我需要截取特定UITableView行的屏幕截圖,並在屏幕截圖前刪除/添加內容到單元格。Swift 3 - 如何截取特定UITableView行的屏幕截圖

例如:單元格只包含文本和共享按鈕。在分享按鈕點擊,我希望應用程序生成與文字和我的應用程序的頂部標誌沒有份額按鈕)的圖像。

這樣做的最佳方法是什麼?如何?

在此先感謝。

+3

[http://stackoverflow.com/questions/39283807/how-to-take-screenshot-of-portion-of-uiview ](http://stackoverflow.com/questions/39283807/how-to-take-screenshot-of-portion-of-uiview) –

+0

@NiravHathi謝謝,但那不能回答我的問題。 – nouf

+0

所以你有你的形象與你的標誌,你只需要添加文字呢? –

回答

0

@Nirav已經給了你一個提示與這篇文章的評論部分:
How to take screenshot of portion of UIView?

所以,你現在必須得到在上海華小區的矩形,所以我做了一個樣本的操作方法:

@IBOutlet var snapImageView: UIImageView! 

@IBAction func snapshotrow(_ sender: Any) { 
    //get the cell 
    if let cell = myTable.cellForRow(at: IndexPath(row: 0, section: 0)) as? MyCustomCellClass { 
     //hide button 
     cell.shareButton.isHidden = true 

     let rectOfCellInTableView = myTable.rectForRow(at: IndexPath(row: 0, section: 0)) 
     let rectOfCellInSuperview = myTable.convert(rectOfCellInTableView, to: myTable.superview) 
     snapImageView.image = self.view.snapshot(of: rectOfCellInSuperview) 

     let finalImage = saveImage(rowImage: snapImageView.image) 
     //test final image 
     snapViewImage.image = finalImage 
    } 
} 

func saveImage(rowImage: UIImage) -> UIImage { 
    let bottomImage = rowImage 
    let topImage = UIImage(named: "myLogo")! 

    let newSize = CGSize.init(width: 41, height: 41) // set this to what you need 
    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0) 

    bottomImage.draw(in: CGRect(origin: .zero, size: newSize)) 
    topImage.draw(in: CGRect(origin: .zero, size: newSize)) 

    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 

,我能得到我的表視圖的第0細胞的快照,並將其分配給snapImageView

現在最後一步是將圖像保存到相機膠捲上,在這裏有很多相關的文章。

來源:Get Cell position in UITableview

添加標識和隱藏分享按鈕:Saving an image on top of another image in Swift

+0

謝謝,如果截圖解決了這個問題。但仍然需要dd應用程序徽標 – nouf

+0

答案已更新,在圖像上添加了徽標並共享按鈕隱藏 –