0

我创建了一个 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;

正如您从上面的代码中可以理解的那样,我有一个名为Static Sc​​enes 的 tableview 单元格 textLabel 。

在这段代码中[cell.textLabel setFrame:CGRectMake(200, 20, 500,600)]; 我打算设置 textLabel 的框架。但它没有根据我设置的框架调整大小。我也使用了这个 cell.textLabel.frame = CGRectMake(200, 20, 500,600) 代码。谁能告诉我调整文本标签大小的好方法。

4

3 回答 3

1

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

于 2011-06-15T21:45:44.633 回答
0

据我了解,除了 cellForRowAtIndexPath 中单元格内的单元格内容外,您不应修改任何内容。看看我不久前的一个问题。概括:

所以黄金法则是:永远不要在你去队列之后改变细胞结构。如果您需要更改结构,请使用不同的单元格 ID。当然,单元格的可定制性越高,重复使用它们的可能性就越大。

于 2011-06-15T21:39:53.843 回答
0

我相信 UITableView 在请求 cellForRowAtIndexPath 之后实际上会布置单元格。虽然我同意 donalbain 的回答,即您应该使用可自定义的单元格,但我相信您可以通过更改此委托方法中的框架来获得所需的功能

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
于 2011-06-15T21:43:44.197 回答