I got question about UIScrollview.
The story is I have a UIView named ChartsView which I re-draw it myself by override method drawRec
Thanks to IOS Rocks and CularBytes for the leads on this. I found two problems (for me) with the above solutions:
Also I am using autolayout to pin the sides of the UIScrollView, so I don't need to worry about width (as is CularBytes).
Here's what I came up with and works (in Swift 3.0):
func setScrollViewContentSize() {
var height: CGFloat
let lastView = self.myScrollView.subviews[0].subviews.last!
print(lastView.debugDescription) // should be what you expect
let lastViewYPos = lastView.convert(lastView.frame.origin, to: nil).y // this is absolute positioning, not relative
let lastViewHeight = lastView.frame.size.height
// sanity check on these
print(lastViewYPos)
print(lastViewHeight)
height = lastViewYPos + lastViewHeight
print("setting scroll height: \(height)")
myScrollView.contentSize.height = height
}
I call this in my viewDidAppear() method.