i'm trying observering 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) } } } and in xcode terminal got nssize not cgsize :
optional(["old": nssize: {320, 0}, "new": nssize: {375, 39.5}, "kind": 1]) in objective-c used method cgsizevalue
cgsize newcontentsize = [[change objectforkey:nskeyvaluechangenewkey] cgsizevalue]; is there method cgsizevalue in swift
i have tried in swift var newcontentsize = change[nskeyvaluechangenewkey]?.cgsizevalue() got error
could not find member 'cgsizevalue'
need anyone?
are on ios? because am, did same thing , arrived @ same question; why nssize? maybe that's xcode terminal playing trick on us.
anyway, can cast nsvalue able use cgsizevalue:
if let zechange = change as? [nsstring: nsvalue] { let oldsize = zechange[nskeyvaluechangeoldkey]?.cgsizevalue() let newsize = zechange[nskeyvaluechangenewkey]?.cgsizevalue() }
Comments
Post a Comment