0

I refered to this question, and did add extension to UIView:

extension UIView {

  // Using a function since `var image` might conflict with an existing variable
  // (like on `UIImageView`)
  func asImage() -> UIImage {
    if #available(iOS 10.0, *) {
      let renderer = UIGraphicsImageRenderer(bounds: bounds)
      return renderer.image { rendererContext in
        layer.render(in: rendererContext.cgContext)
      }
    } else {
      UIGraphicsBeginImageContext(self.frame.size)
      self.layer.render(in:UIGraphicsGetCurrentContext()!)
      let image = UIGraphicsGetImageFromCurrentImageContext()
      UIGraphicsEndImageContext()
      return UIImage(cgImage: image!.cgImage!)
    }
  }
}

Then i create very simple test view:

private class FakeTestView: BaseView {

  override func prepare() {
    backgroundColor = .blue
    setup()
  }

  private func setup(){
    let lbl = LabelSL.regular()
    lbl.text = "LabelSL.regular()"
    addSubview(lbl)
    lbl.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = true
    lbl.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
  }
}

That view showing correctly when treated as UIView. Finally, i tried:

let newSlideFrame = CGRect(x: CGFloat(i) * event.expectedWidth(),
                                 y: 0,
                                 width: event.expectedWidth(),
                                 height: frame.size.height)
      let imgView = UIImageView()
      imgView.contentMode = .scaleAspectFit
      imgView.frame = newSlideFrame
      imgView.image = FakeTestView().asImage()
      scroll.addSubview(imgView)

But there is nothing showing. Code from above work when i try to add UIView, or UIImageView with sample images.

Evgeniy Kleban
  • 6,794
  • 13
  • 54
  • 107

0 Answers0