【问题标题】:Custom cell in tableView in ios 5ios 5中tableView中的自定义单元格
【发布时间】:2011-12-01 06:28:35
【问题描述】:

我正在尝试在特定 indexPath.row 处减小单元格的一个标签的宽度,但它不起作用.. 下面我为此添加了代码,我正在使用 iOs 5 故事板。 任何人都有其他方法可以在运行时更改标签的大小??

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"name&email"];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];


}
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
UILabel *detail = (UILabel *)[cell viewWithTag:101];
if(indexPath.row == 0){
    nameLabel.text = @"Name : ";
    detail.text = @"";
}else if(indexPath.row == 1){
    nameLabel.text = @"Email : ";
     detail.text = @"";
}else if(indexPath.row == 2){
    nameLabel.text = @"Location Alerts";
    detail.text = @"Notifies people when they are close to a saved spot";
// here i am changing the width of lable
    detail.frame = CGRectMake(0, 0, 100, 0);
}else if(indexPath.row == 3){
    nameLabel.text = @"Share This App :";
    detail.text = @"(post to facebook/twitter)";
}else if(indexPath.row == 4){
    nameLabel.text = @"Review This App :";
    detail.text = @"(on iTunes)";
}else if(indexPath.row == 5){
    nameLabel.text = @"Get Help :";
    detail.text = @"(send an email to me)";
}
// Configure the cell...

return cell;
}

【问题讨论】:

    标签: uitableview ios5 uilabel


    【解决方案1】:

    我不是专家,但我看到您使用了两个不同的标识符。

    如果我是你,我会尝试:

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

    好吗?告诉我它是否有效:)

    【讨论】:

      【解决方案2】:

      如果您在 Storyboard 中创建了自定义单元格,请检查 Identifier 是什么并使用它。 Identifier 应该在 Attributes Inspector 下。如果 IdentifierCell,那么您的代码应该是这样才能获取 Cell。

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

      如果您有一个名为 detail 的 UILabel 想要更改其宽度,则可以通过更改 frame 来更改 size 和重用之前的frame originsize height

      detail.frame = CGRectMake(detail.frame.origin.x, detail.frame.origin.y, newWidth,detail.frame.size.height);
      

      确保将 detail.size.height 作为高度传递,以保持高度相同(我注意到在您的示例中高度为 0,这不会使其可见)。希望有帮助

      【讨论】:

        猜你喜欢
        • 2016-04-21
        • 1970-01-01
        • 2019-08-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多