UITableView文本标签框架显示不正确

时间:2014-07-04 07:32:48

标签: ios uitableview

我开发了iPhone应用程序,其中我有UITableView。

根据文字

UITableViewCell textlabel框架不正确

当我编写此代码时,UITableView textlabel不合适。

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

         static NSString *CategCellIdentifier = @"Cell";
                    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CategCellIdentifier];
                    if (cell == nil) {
                        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CategCellIdentifier];
                    }

               cell.textLabel.backgroundColor=[UIColor redColor];
               cell.textLabel.font=  [UIFont systemFontOfSize:12.0];
               cell.textLabel.textAlignment = NSTextAlignmentCenter;
               cell.textLabel.text = [tempArr objectAtIndex:indexPath.row];

                return cell;
        }

当我将数组传递给UITableView时,它显示如下:

问题是什么?我在做错了,请帮助

3 个答案:

答案 0 :(得分:1)

我不确定您的数组包含哪些文字。但是,我创造了一个我自己的例子。这是代码:

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

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

    static NSString *CategCellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CategCellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CategCellIdentifier];
    }

    cell.textLabel.backgroundColor = [UIColor redColor];
    cell.textLabel.font=  [UIFont systemFontOfSize:20.0];
    cell.textLabel.textAlignment = NSTextAlignmentCenter;
    cell.textLabel.text = @"Brand";

    return cell;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.textLabel.backgroundColor = [UIColor redColor];
}

@end

以下是输出:

enter image description here

我用过你的代码。我唯一的区别是,我在willDisplayCell:UITableViewDelegate的方法中将红色应用于文本标签。

根据Apple的UI指南,显示在tableview两侧的边距。

如果您需要我的代码,请告诉我。

答案 1 :(得分:0)

尝试设置尺寸以适合内容设置文本。

[cell.textLabel sizeToFit];

感谢。

答案 2 :(得分:0)

检查大小检查器中的表行高度属性,可能有些问题

[tableView setRowHeight:100.00];

或者您可以使用委托设置行高

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