2015-06-12 125 views
1

我想用有沒有辦法從collectionviewcell

-preferredLayoutAttributesFittingAttributesUICollectionviewCell子我們正在編寫中得到collectionViews框架。

目前我們已經有一個弱指針出來parentViewController,我試着設置collectionViewcell的框架寬度與parentViewcontroller.view.frame.size.width相同。

我不想有一個指向CollectionViewCell子類的parentViewController作爲對parentviewcontroller的引用是一個壞主意。

我的問題是....

有一個簡單的和理想的方式從collectionViewcell類中獲得collectionviewcell的超級觀的框架?

+0

如果您不想在答案中使用'.superview',請改用代理。 – 0yeoj

+0

@ 0yeoj並在委託中有一個方法來獲取框架? –

+0

是的,但它可能超過殺..爲什麼不使用'[UIScreen mainScreen] .bounds'你有viewController框架的一些修改? – 0yeoj

回答

2

如果你想使用父視圖,那麼你不需要任何引用。你可以這樣做:

CGFloat width = self.superview.frame.size.width; 

而作爲@Ralfonso在評論中指出:

另外,如果你想加入到一個視圖層次後,立即得到了上海華規模,覆蓋didMoveToSuperview:和訪問超級景觀物業。如果它爲零,則該視圖已從超級視圖中移除。如果非零,則該視圖已被添加到超級視圖的層次結構中。

+2

另外,如果你想在添加到視圖層次結構後立即獲取超級視圖大小,請覆蓋'didMoveToSuperview'並訪問'superview'屬性。如果它爲零,則該視圖已從超級視圖中移除。如果非零,則該視圖已被添加到超級視圖的層次結構中。 – Ralfonso

+1

好點,我會用那個編輯我的答案。 –

+0

@Otávio正在嘗試訪問superview一個可行的解決方案? –