需求是這樣的,我需要在tableviewcell裡面加入乙個和cell的寬高一樣大的label,我使用_contentlabel = [[uilabel alloc] initwithframe:self.contentview.bounds];
來設定label的寬高,然後使用懶載入在初始化方面裡面新增label,完整的**如下:
- (instancetype)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier
return
self;
}- (uilabel *)contentlabel
return _contentlabel;
}
label總是佔不滿螢幕。我在iphone5上面執行正常,在iphone 6上面執行出錯了,斷點除錯後才發現寬度是320,高度是44,結果如下:
查了一資料,可能是歷史遺留問題,所以tableviewcell在初始化的時候寬高預設是320*44.只有在布局的時候才會調整到設定的高度。所以可以重寫layoutsubviews方法。在layoutsubviews裡面載入label即可。
- (instancetype)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier
return
self;
}- (void)layoutsubviews
- (uilabel *)contentlabel
return _contentlabel;
}
結果如下
初始化 指定初始化
id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...
初始化 1 預設初始化 列表初始化
初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...
初始化 MyBatis初始化之載入初始化
在mybatis初始化過程中,大致會有以下幾個步驟 1.建立configuration全域性配置物件,會往typealiasregistry別名註冊中心新增mybatis需要用到的相關類,並設定預設的語言驅動類為xmllanguagedriver 3.構建defaultsqlsessionfacto...