私のSwift
アプリでは、私はUITableView
に4つの静的なセルを含んでいて、それから異なる量の動的セルを持っています。私はスタティックセルのスクリーンショットのみを撮りたいです。SwiftのUITableViewで選択した行のスクリーンショットを取得してUIImageとして保存するにはどうすればよいですか?
私は次の拡張が見つかりました:それはこの質問How to render a whole UITableView as an UIImage in iOS?
から来ているしかし、問題は、私が変更にもかかわらず、である
extension UITableView {
var capturedImage : UIImage {
UIGraphicsBeginImageContext(contentSize);
scrollToRow(at: NSIndexPath(row: 0, section: 0) as IndexPath, at: UITableViewScrollPosition.top, animated: false)
layer.render(in: UIGraphicsGetCurrentContext()!)
let row = numberOfRows(inSection: 0)
let numberofRowthatShowinscreen = 4
let scrollCount = row/numberofRowthatShowinscreen
for i in 0 ..< scrollCount {
scrollToRow(at: NSIndexPath(row: (i+1)*numberofRowthatShowinscreen, section: 0) as IndexPath, at: UITableViewScrollPosition.top, animated: false)
layer.render(in: UIGraphicsGetCurrentContext()!)
}
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext();
return image;
}
}
を:
let numberofRowthatShowinscreen = 4
に:
let numberofRowthatShowinscreen = 3
それでも、それはUITableView
全体のスクリーンショットを取る。最初の4行だけに制限する方法はありますか?
キャプチャされたImageImageを呼び出す前に、 'yourDataSource.prefix(4)'を返すテーブルビューのデータソース配列を制御するのはなぜですか? –