调整UITableview文本标签的大小

时间:2011-06-15 21:21:39

标签: cocoa-touch ipad uitableview textlabel

我创建了一个UITableView并在 cellForRowAtIndexPath

中编写了以下代码
static NSString *CellIdentifier = @"RootViewControllerCellIdentifier";

UITableViewCell *cell = [self.tableView queueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    cell.selectionStyle = UITableViewCellSelectionStyleGray;    

}

// Set appropriate labels for the cells.
switch (indexPath.row) {
    case 0:
        cell.textLabel.text = @"Static Scenes";             
        **[cell.textLabel setFrame:CGRectMake(200, 20, 500,600)];**
        cell.imageView.image=[UIImage imageNamed:@"RunOptionsImage.png"];
        cell.imageView.frame=CGRectMake(15, 20, 55, 65);
        break;

从上面的代码可以理解,我有一个tableview单元格textLabel,名为静态场景

在此代码中 [cell.textLabel setFrame:CGRectMake(200,20,20,600)]; 我打算设置textLabel的框架。但是它不会根据我设置的框架调整大小。 我也使用了这个cell.textLabel.frame = CGRectMake(200,20,500,600)代码。 任何人都可以告诉我一个重新调整文本标签大小的好方法。

3 个答案:

答案 0 :(得分:1)

除了更改文本标签的大小外,您还需要在tableView:heightForRowAtIndexPath:方法中返回适当的高度。否则,任何布局更改都不会反映出来。

答案 1 :(得分:0)

根据我的理解,除了cellForRowAtIndexPath中的单元格内的单元格内容之外,不应该修改任何内容。不久前退出我的questions之一。摘要:

  

所以黄金法则是:永远不要改变   你已经发挥作用后的细胞结构   它。如果你需要改变   然后结构使用不同的单元格ID。   当然更可定制的是   细胞越容易发生   重用它们。

答案 2 :(得分:0)

我相信UITableView在请求cellForRowAtIndexPath之后实际上放置了单元格。虽然我同意donalbain的答案,你应该使用可自定义的单元格,但我相信你可以通过改变这个委托方法中的框架来获得你想要的功能

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