UITableView和UITableViewCell

一:UITableView
UITableView表視圖砸紊。
表示圖在我們?nèi)粘5膇OS開發(fā)中應(yīng)用非常廣泛其做。
description:UITableView繼承與UIScrollView。所以UITableView擁有UIScrollView所有的方法和屬性凌唬。UIScrollView的一些屬性和方法我就不介紹了并齐,如果有些不清楚可以查看UIScrollView基本應(yīng)用。
初始化:
UIScrollView擁有自己的初始化方法

- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style

第一種是不分組分格UITableViewStylePlain

UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
屏幕快照 2016-07-30 下午8.46.44.png

第二種是分組分格UITableViewStyleGrouped

UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
屏幕快照 2016-07-30 下午8.46.55.png

初始化后在self.view addSubView:tableView就可以在當(dāng)前ViewController上添加表視圖了。用鼠標(biāo)來回滑動(dòng)一下可以發(fā)現(xiàn)tableView由一行一行的cell組成况褪。
如果我們想利用tableView來創(chuàng)建我們所需要的一些視圖效果我們就要實(shí)現(xiàn)它的兩個(gè)代理方法:UITableViewDelegate(控制tableView的顯示的代理),UITableViewDataSource(控制tableView的數(shù)據(jù)顯示的代理)撕贞。你就記住UITableViewDelegate中的代理方法可以控制tableView的外形長什么樣,UITableViewDataSource中的代理方法可以控制tableView顯示的一些數(shù)據(jù)测垛。
我們需要在頭文件延展中簽訂協(xié)議捏膨。并設(shè)置簽訂代理。

tableView.delegate = self;
 tableView.dataSource = self;

簽訂完代理后就需要實(shí)現(xiàn)tableviewsDataSource必須實(shí)現(xiàn)的兩個(gè)方法

@protocol UITableViewDataSource<NSObject>

@required

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

// Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
// Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

@optional

這是UItableViewDataSource的頭文件食侮,第一個(gè)方法需要我們返回一個(gè)NSInterge類型的數(shù)據(jù)号涯。這里表示我們要返回一個(gè)section需要返回多少個(gè)Row。

return 10;

第二個(gè)方法需要我門返回一個(gè)UITableVIewCell

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableViewCustomCellReuse];

注意:tableView在重用池中取cell之前我門必須先注冊(cè)重用池锯七×纯欤可以在VC的ViewDidLoad的方法中或者在創(chuàng)建tableView的地方注冊(cè)。

[self.nameTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kTableViewCellReuse];

運(yùn)行程序


屏幕快照 2016-08-06 上午11.42.47.png

我們可以給cell添加一些東西
UITableCell系統(tǒng)的cell 擁有imageView眉尸,textLabel久又,detailTextLabel這三個(gè)屬性我們可以對(duì)cell進(jìn)行賦一些圖片,標(biāo)題和副標(biāo)題
當(dāng)然我門也可以自定義cell 在我們自定義cell時(shí)要將我們自定義的空間添加到contentView上效五。因?yàn)閁ITableViewCell上會(huì)有一個(gè)contentView添加在cell上地消。
在這里補(bǔ)充一下如何自定義cell。
Command + N創(chuàng)建一個(gè)文件繼承UITableViewCell畏妖。

屏幕快照 2016-08-06 下午2.07.05.png

這里有幾點(diǎn)需要注意的是脉执,當(dāng)我們自定義cell時(shí)我們的初始化方法不再是initWithFrame:而是initWithStyle:reuseIdentifier:
應(yīng)為在整個(gè)cell的生命周期都不會(huì)走initWithFrame:這個(gè)方法。你可以自己打斷點(diǎn)進(jìn)行驗(yàn)證戒劫。

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
       // TableViewCell 默認(rèn)大小 寬320 高44
       // 在初始化時(shí)半夷, cell的frame是初始值, 不能為自定義視圖布局
        NSLog(@"初始化時(shí)迅细,cell的frame是%@", NSStringFromCGRect(self.frame));
        }
        //添加子view
    _customView = [[UIView alloc] initWithFrame:CGRectZero];
    _customView.backgroundColor = [UIColor orangeColor];
    //contentView顯示內(nèi)容
    [self.contentView addSubview:_customView];
   //初始化方法中巫橄,只負(fù)責(zé)創(chuàng)建
    
   //3. 創(chuàng)建的子試圖應(yīng)該添加在哪個(gè)父試圖
    return self;
}

將自定義的控件加載到cell的contentView上。在初始化的時(shí)候不要給自空間的frame配置茵典。我們需要在layoutSubviews的方法里對(duì)自控件的frame進(jìn)行配置湘换。只有在layoutSubviews里配置才能適配多種尺寸的iphone。否則系統(tǒng)默認(rèn)只適配3.5寸的iPhone统阿。

- (void)layoutSubviews {
   //千萬不要忘記 super layoutSubviews
    [super layoutSubviews];
    NSLog(@"%s時(shí)彩倚,cell的frame是%@",__FUNCTION__, NSStringFromCGRect(self.frame));
   //layoutSubviews中, 負(fù)責(zé)給視圖布局
   //不要使用cell的frame去進(jìn)行視圖布局
   //使用contentView的frame進(jìn)行布局
    _customView.frame = CGRectMake(0, 0, self.contentView.frame.size.width, 100);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扶平,一起剝皮案震驚了整個(gè)濱河市帆离,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌结澄,老刑警劉巖哥谷,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岸夯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡们妥,警方通過查閱死者的電腦和手機(jī)猜扮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來王悍,“玉大人破镰,你說我怎么就攤上這事⊙勾ⅲ” “怎么了鲜漩?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長集惋。 經(jīng)常有香客問我孕似,道長,這世上最難降的妖魔是什么刮刑? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任喉祭,我火速辦了婚禮,結(jié)果婚禮上雷绢,老公的妹妹穿的比我還像新娘泛烙。我一直安慰自己,他們只是感情好翘紊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布蔽氨。 她就那樣靜靜地躺著,像睡著了一般帆疟。 火紅的嫁衣襯著肌膚如雪鹉究。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天踪宠,我揣著相機(jī)與錄音自赔,去河邊找鬼。 笑死柳琢,一個(gè)胖子當(dāng)著我的面吹牛绍妨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播染厅,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痘绎,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了肖粮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤尔苦,失蹤者是張志新(化名)和其女友劉穎涩馆,沒想到半個(gè)月后行施,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魂那,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年蛾号,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涯雅。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鲜结,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出活逆,到底是詐尸還是另有隱情精刷,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布蔗候,位于F島的核電站怒允,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锈遥。R本人自食惡果不足惜纫事,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望所灸。 院中可真熱鬧丽惶,春花似錦、人聲如沸爬立。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懦尝。三九已至知纷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陵霉,已是汗流浹背琅轧。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踊挠,地道東北人乍桂。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像效床,于是被迫代替她去往敵國和親睹酌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容