2014-01-06 42 views
0

我用UIKit做了很多動畫,並且我經常在viewDidLoad中存儲任何動畫視圖的初始幀,以便始終在幀中顯示xib中的幀。是否有訪問xib的初始屬性的快捷方式?

這是有點臭,似乎是那種會自動化的東西,但我似乎無法找到任何信息。 UIView上有一個存儲初始xib幀大小的屬性?或者可能是一個UIKit實用工具方法,通過名稱掃描xib的xml屬性值?

回答

0

因此,雖然我無法找到任何方式來訪問接口生成器文件的初始屬性(除非你寫一個IB XML解析器方式),我發現從Do I need to set heightForRowAtIndexPath if I am using a custom UITableViewCell?輝煌的替代品。您可以爲每個IB對象創建兩個插座 - 一個用於操作,另一個用於原型 - 它將保存xib的所有原始值,而不是從對象本身訪問某些常量值(我希望獲得self.attribute.nib.value)。

爲了使事情變得簡單,只需爲您的筆尖創建一個(其他)插座並覆蓋其獲取器。 例如,如果我們有LargeCell.xib,我們將爲largeCelllargeCellPrototype創建一個出口。

然後,我們將爲此原型創建一個懶惰訪問器,以確保原型不爲零,並且只加載一次。

- (LargeCell*)largeCellPrototype 
{ 
    if (!_largeCellPrototype) 
    {       
     [NSBundle mainBundle] loadNibNamed:NSStringFromClass([LargeCell class]) // Presuming you don't name files with reckless abandon 
            owner:self 
            options:nil]; 
    } 
} 

現在得到的初始值是一樣簡單

CGFloat initialViewHeight = self.largeCellPrototype.frame.size.height; 
相關問題