gpt4 book ai didi

uitableview - tableview 中的文本标签太长会影响正确的细节 (detailTextLabel) 被覆盖或不显示

转载 作者:行者123 更新时间:2023-12-04 03:09:11 25 4
gpt4 key购买 nike

我已经为该单元格设置了一个文本,但是,它显示的文本太长,这会影响要覆盖或不显示的正确详细文本。

我无法更改它,因为我需要下一个 View Controller 中的名称。是否可以让它只显示文本,后跟“....”?

例子:

电子电气工程..... 01 >

传奇:
“Electrical & Electronic Engi....”作为显示在tableview中的文本,“01”作为右侧的detailTextLabel,“>”作为导航。

应该是这样的,http://oi58.tinypic.com/2j4vg5k.jpg ,但由于某些文字太长,出现的内容是:http://oi58.tinypic.com/erc177.jpg

textLabel 和 detailTextLabel 似乎不适合或显示在整行中。我希望正确的 detailTextLabel 仍然存在, textLabel 以“....”结尾

谢谢。

(我是 iOS 编程的新手)

最佳答案

为此,您必须限制 UITableViewCell 的默认 textLabel 的宽度或向单元格添加新的 UILabel。

你有两个选择

1)不要使用单元格的默认文本标签,创建新的 UILabel 并将其添加为 tableview 单元格的 subview 。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell using custom cell

//restrict width here while creating label (change 40 to what you want)
UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(0,0,40,20)];

tempLabel.text=@"The text you want to assign";
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];



[[cell contentView] addSubview:tempLabel];
}

return cell;
}

2)或者第二种方法是更改​​默认 textLabel 的宽度,为此您必须创建继承 UITableViewCell 的新子类,并在子类覆盖方法 (void)layoutSubView 中,并在该方法中更改宽度(通过反复试验方法进行)

使用以下 .h 和 .m 文件创建新类
////CustomCell .h file

#import <UIKit/UIKit.h>

@interface CustomCell : UITableViewCell

@end

////CustomCell .m file

#import "CustomCell.h"

@implementation CustomCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}

-(void)layoutSubviews{
[super layoutSubviews];

CGRect tempFrame=self.textLabel.frame;

//whatever you want to set
tempFrame.width=30;
self.textLabel.frame=tempFrame;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

// Configure the view for the selected state
}

@end

或者一种不同的选择(更好的一种)

3)创建自定义tableview单元格

custom tableview cell tutorial

而对于 ... 在 UILabel 的末尾,有 UILabel 的属性 truncateTail。你可以使用它。

关于uitableview - tableview 中的文本标签太长会影响正确的细节 (detailTextLabel) 被覆盖或不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22084094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com