第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在沒有自定義單元格的情況下在UITableViewCell中包裝文本

如何在沒有自定義單元格的情況下在UITableViewCell中包裝文本

慕神8447489 2019-09-18 13:47:54
這是在iPhone 0S 2.0上。2.1的答案也很好,但我不知道有關(guān)表的任何差異。感覺應(yīng)該可以在不創(chuàng)建自定義單元格的情況下獲取文本,因?yàn)槟J(rèn)情況下UITableViewCell包含a UILabel。我知道如果我創(chuàng)建一個(gè)自定義單元格,我可以使它工作,但這不是我想要實(shí)現(xiàn)的 - 我想了解為什么我當(dāng)前的方法不起作用。我已經(jīng)發(fā)現(xiàn)標(biāo)簽是按需創(chuàng)建的(因?yàn)閱卧裰С治谋竞蛨D像訪問,所以它不會(huì)在必要時(shí)創(chuàng)建數(shù)據(jù)視圖),所以如果我做這樣的事情:cell.text = @""; // create the labelUILabel* label = (UILabel*)[[cell.contentView subviews] objectAtIndex:0];然后我得到一個(gè)有效的標(biāo)簽,但設(shè)置numberOfLines(和lineBreakMode)不起作用 - 我仍然得到單行文本。UILabel文本中有足夠的高度顯示 - 我只是為高度返回一個(gè)較大的值heightForRowAtIndexPath。
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是一種更簡(jiǎn)單的方法,它適用于我:


在你的cellForRowAtIndexPath:功能里面。第一次創(chuàng)建單元格時(shí):


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)

{

    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;

    cell.textLabel.numberOfLines = 0;

    cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];

}

您會(huì)注意到我將標(biāo)簽的行數(shù)設(shè)置為0.這使得它可以根據(jù)需要使用盡可能多的行。


下一部分是指定你的大小UITableViewCell,所以在你的heightForRowAtIndexPath函數(shù)中這樣做:


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSString *cellText = @"Go get some text for your cell.";

    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];

    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);

    CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];


    return labelSize.height + 20;

}

我在返回的單元格高度上添加了20,因?yàn)槲蚁矚g在文本周圍添加一點(diǎn)緩沖區(qū)。


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)

{

? ? cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;

? ? cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;

? ? cell.textLabel.numberOfLines = 0;

? ? cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];

}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

? ? NSString *cellText = @"Go get some text for your cell.";

? ? UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];


? ? NSAttributedString *attributedText =

? ? ? ? [[NSAttributedString alloc]

? ? ? ? ? ? initWithString:cellText

? ? ? ? ? ? attributes:@

? ? ? ? ? ? {

? ? ? ? ? ? ? ? NSFontAttributeName: cellFont

? ? ? ? ? ? }];

? ? CGRect rect = [attributedText boundingRectWithSize:CGSizeMake(tableView.bounds.size.width, CGFLOAT_MAX)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?options:NSStringDrawingUsesLineFragmentOrigin

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?context:nil];

? ? return rect.size.height + 20;

}


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

當(dāng)我遇到同樣的問題時(shí),記錄我的經(jīng)驗(yàn)的簡(jiǎn)短評(píng)論/答案。盡管使用了代碼示例,但是表視圖單元格高度正在調(diào)整,但是單元格內(nèi)的標(biāo)簽仍未正確調(diào)整 - 解決方案是我從自定義NIB文件加載我的單元格,這在調(diào)整的單元格高度后發(fā)生。

我在NIB文件中設(shè)置了不包裝文本的設(shè)置,標(biāo)簽只有1行; NIB文件設(shè)置覆蓋了我在代碼中調(diào)整的設(shè)置。

我接受的教訓(xùn)是確保始終牢記物體在每個(gè)時(shí)間點(diǎn)的狀態(tài) - 它們可能尚未創(chuàng)建!......有人下線了。


查看完整回答
反對(duì) 回復(fù) 2019-09-18
  • 3 回答
  • 0 關(guān)注
  • 666 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)