真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開(kāi)發(fā)xib的簡(jiǎn)單介紹

ios 開(kāi)發(fā)中xib的multiplier有什么用

xib確實(shí)是一個(gè)很方便的工具;

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)滎經(jīng),10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108

在創(chuàng)建某些自定義視圖的時(shí)候如果用代碼來(lái)寫(xiě),會(huì)比較麻煩而且需要計(jì)算各種控件的frame,這樣很不方便。這個(gè)時(shí)候使用XIB酒呢方便了。

使用步驟:

1.新建一個(gè)類(lèi),繼承UIview。類(lèi)名與下文中的XIB名稱(chēng)一致。

2.新建一個(gè)xib文件,在XIB 中 選中View 改它Class 為你建的 類(lèi)名。注意是選中XIB的view綁定類(lèi)的。

3.然后就可以在里面托各種控件,設(shè)置約束了。

4.實(shí)例化有兩種方法,一種是在外部使用的時(shí)候直接調(diào)用

ios開(kāi)發(fā) 通過(guò)xib創(chuàng)建view怎么添加tableview

我們以前通常會(huì)這樣做

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

static NSString *CellIdentiferId = @"MomentsViewControllerCellID";

MomentsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentiferId];

if (cell == nil) {

NSArray *nibs = [[NSBundle mainBundle]loadNibNamed:@"MomentsCell" owner:nil options:nil];

cell = [nibs lastObject];

cell.backgroundColor = [UIColor clearColor];

};

}

return cell;

}

嚴(yán)重注意:我們之前這么用都沒(méi)注意過(guò)重用的問(wèn)題,這樣寫(xiě),如果在xib頁(yè)面沒(méi)有設(shè)置 重用字符串的話,是不能夠被重用的,也就是每次都會(huì)重新創(chuàng)建,這是嚴(yán)重浪費(fèi)內(nèi)存的,所以,需要修改啊,一種修改方式是使用如下ios5提供的新方式:

- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier

還有就是在xib頁(yè)面設(shè)置好(ios5之前也可以用的)

如果忘了在xib中設(shè)置,還有一種方式

NSArray * nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableCell" owner:nil options:nil];

for (id obj in nibObjects)

{

if ([obj isKindOfClass:[CustomTableCell class]])

{

cell = obj;

[cell setValue:cellId forKey:@"reuseIdentifier"];

break;

}

}

還有更常用的

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return[self.items count];} -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell * cell =[tableView dequeueReusableCellWithIdentifier:@"myCell"]; if(!cell){ cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];} cell.textLabel.text =[self.items objectAtIndex:indexPath.row]; return cell;

}

但是現(xiàn)在有一種新的方式了,可以采用如下的方式

采用registerNib的方式,并且把設(shè)置都放在了willDisplayCell方法中了,而不是以前我們經(jīng)常用的cellForRowAtIndexPath

這個(gè)方法我試了下,如果我們?cè)趚ib中設(shè)置了 Identifier,那么此處的必須一致,否則會(huì)crash的

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

{

MyCustomCell * cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];

if (!cell)

{

[tableView registerNib:[UINib nibWithNibName:@"MyCustomCell" bundle:nil] forCellReuseIdentifier:@"myCell"];

cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];

}

return cell;

}

- (void)tableView:(UITableView *)tableView willDisplayCell:(MyCustomCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

cell.leftLabel.text = [self.items objectAtIndex:indexPath.row];

cell.rightLabel.text = [self.items objectAtIndex:indexPath.row];

cell.middleLabel.text = [self.items objectAtIndex:indexPath.row];

}

[img]

IOS開(kāi)發(fā),代碼布局與xib布局有什么區(qū)別

iOS中xib與storyboard顯示原理

在iOS中主要的布置界面的方式有3種:代碼,xib,storyboard。

1. 代碼

代碼布置界面是萬(wàn)能的,但通常很復(fù)雜。布置一個(gè)簡(jiǎn)單的界面可能需要很多行代碼,因此十分繁瑣。

2. xib

xib適合布置小塊界面,也可以用來(lái)做單個(gè)界面。屬于拖控件型,只需要寫(xiě)加載xib的代碼。

3.storyboard

storyboard適合做大界面的跳轉(zhuǎn)等,而且豐富的viewController使得做減免變得非常簡(jiǎn)單。

關(guān)于基本原理:Android與iOS基本布局顯示原理是一樣的,都將視圖與模型數(shù)據(jù)分離,都遵循MVC的設(shè)計(jì)模式。


網(wǎng)站欄目:ios開(kāi)發(fā)xib的簡(jiǎn)單介紹
URL分享:http://weahome.cn/article/dsohcsd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部