Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
Ask Question
I want to set height of collection view dynamic according to content, I tried below code :
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.ItemCollection.addObserver(self , forKeyPath: "contentSize", options: NSKeyValueObservingOptions.old, context: nil)
func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutableRawPointer) {
let newHeight : CGFloat = self.ItemCollection.collectionViewLayout.collectionViewContentSize.height
var frame : CGRect! = self.ItemCollection.frame
frame.size.height = newHeight
self.ItemCollection.frame = frame
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
self.ItemCollection.removeObserver(self, forKeyPath: "contentSize")
I'm getting error on this line :
self.ItemCollection.addObserver(self , forKeyPath: "contentSize", options: NSKeyValueObservingOptions.old, context: nil)
Below is the error :
An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
Key path: contentSize
Observed object: <UICollectionView: 0x102911200; frame = (0 275; 375 360); clipsToBounds = YES; autoresize = W+TM+H+BM; gestureRecognizers = <NSArray: 0x1c4247a40>; layer = <CALayer: 0x1c02388a0>; contentOffset: {0, 0}; contentSize: {375, 0}; adjustedContentInset: {0, 0, 0, 0}> collection view layout: <UICollectionViewFlowLayout: 0x102543a80>
Change: {
kind = 1;
old = "NSSize: {20, 360}";
Context: 0x0'
–
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.