我正在尝试这样观察collectionView.contentSize
:
func startObserveCollectionView() {
collectionView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.Old.union(NSKeyValueObservingOptions.New), context: &SearchDasboardLabelContext)
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if context == &SearchDasboardLabelContext {
if object === collectionView && keyPath! == "contentSize" {
print(change)
}
}
}
在 Xcode 终端中,我得到了一个 NSSize
而不是像这样的 CGSize
:
Optional(["old": NSSize: {320, 0}, "new": NSSize: {375, 39.5}, "kind": 1])
在Objective-C中我使用了方法CGSizeValue
CGSize newContentSize = [[change objectForKey:NSKeyValueChangeNewKey] CGSizeValue];
Swift中是否有类似于CGSizeValue
的方法?
我在Swift中尝试使用var newContentSize = change[NSKeyValueChangeNewKey]?.CGSizeValue()
,但是出现了错误。
找不到成员'CGSizeValue'
需要帮助,谢谢!
... observe(\UITextView.contentSize ...
中,反斜杠“\”有什么作用? - shallowThought