I found how to calculate dynamic uiwebview height according to its content. My code is :
  println("webViweDidFinish started")
    var frame:CGRect = myWebView.frame
    frame.size.height = 1
    var fittingSize :CGSize = myWebView.sizeThatFits(CGSizeZero)
    frame.size = fittingSize
    myWebView.frame = frame
    var contentsizeHeight = webView.scrollView.contentSize.height
    var yCoordinateOfWebView = myWebView.frame.origin.y
    var contentHeight: CGFloat = webView.scrollView.contentSize.height;
    myScrollView.contentSize = CGSizeMake(self.view.frame.width, yCoordinateOfWebView + contentsizeHeight + labelAuthorOfArticle.frame.height) //
    UIView.animateWithDuration(0.5, animations: {
        self.heightConstraints.constant = fittingSize.height
        self.myWebView.layoutIfNeeded()
        self.myScrollContentView.layoutIfNeeded()
    })
    self.activityIndicator.stopAnimating()
If I use this approach:
        var height:NSString! = webView.stringByEvaluatingJavaScriptFromString("document.height;")
    var heightInFloat = height.floatValue
How to convert height to CGFloat? I can only convert it to float as you see.
The problem is that when webview has too many images the height is calculated wrong. Oppositely when there is no image height is calculated right. When I reload the function, the second time it calculates right (with images). Here is content of string that I am loading:
 class func formatContentText(inout text: NSString)-> NSString{
    text = text.stringByReplacingOccurrencesOfString("src=\"", withString: "src=\"http://dixinews.kz")
    var deviceWidth = "300"
    text = "<html><head><meta name = \"viewport\" content = \"user-scalable=no, width=" + deviceWidth + " , maximum-scale=1.0\"><style>img{max-width:100%%;height:auto !important;width:auto !important;};</style></head><body>" + text + "</body></html>"
    return text
}
				
                        
I used approach with javascript. Here is my code: