以下の様にscrollViewからImageを生成しようとしています。
Swift
1let rect = scrollView.bounds 2 3 // ビットマップ画像のcontextを作成. 4 UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0) 5 let context: CGContext = UIGraphicsGetCurrentContext()! 6 // 対象のview内の描画をcontextに複写する. 7 scrollView.layer.render(in: context) 8 // 現在のcontextのビットマップをUIImageとして取得. 9 let capturedImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()! 10 // contextを閉じる. 11 UIGraphicsEndImageContext()
このスクロールview上には以下の様に3つのviewがあります。
更に以下の様にそれぞれのフレームなどが設定されています。
Swift
1 //コンテンツサイズはscrollview内部の表示領域を指している 2 scrollView.contentSize = CGSize(width: scrollView.frame.size.width * 3, 3 height: scrollView.frame.size.height) 4 //chartviewのサイズをscrollviewの1ページ目に収まるように 5 chartView.frame = CGRect(x: scrollView.frame.width * 0, y: 0, width: scrollView.frame.width, height: scrollView.frame.height) 6 //percentviewのサイズをscrollviewの2ページ目に収まるように 7 percentView.frame = CGRect(x: scrollView.frame.width * 1, y: 0, width: scrollView.frame.width, height: scrollView.frame.height) 8 //barViewのサイズをscrollviewの3ページ目に収まるように 9 barView.frame = CGRect(x: scrollView.frame.width * 2, y: 0, width: scrollView.frame.width, height: scrollView.frame.height)
これで1ページ目を表示しているときは1ページ目のviewが画像となってキャプチャされているのですが、2や3ページ目を表示している際に以上の方法でキャプチャしようとすると何も表示されていないviewがキャプチャされてしまいます。これは何故でしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。