setFrame不适用于UITableView Cell的UITextLabel

时间:2012-10-14 05:47:33

标签: uitableview

我无法设置UITableViewCell的UITextLabel的帧。我创建了一个CGRect并将其设置为框架,但这似乎不起作用。在下面的代码中设置的UITextLabel的所有其他属性(颜色字体和文本)将根据需要进行渲染。

 UITableViewCell *c = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

        if(!c)
        {
            c = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
        }

NSString *soundName = [[soundNames objectAtIndex:[indexPath row]] valueForKey:@"Name"];
        UIColor *whiteColor = [UIColor whiteColor];
        [[c textLabel] setTextColor:whiteColor];
        [[c textLabel] setText:soundName];
        [[c textLabel] setFont:[UIFont fontWithName:@"Gill Sans" size:17]];

        CGRect textLabelFrame = CGRectMake(50, 7, 270, 29);
        [[c textLabel] setFrame:textLabelFrame];

        return c;

关于可能会发生什么的任何想法?

1 个答案:

答案 0 :(得分:0)

每次显示单元格时textLabel方法都会更改layoutSubviews的框架。您可以覆盖layoutSubviews方法并在那里设置自定义框架,或者只是将自己的UILabel预定义框架添加到单元格中。