为啥我的 iPhone UITableView 原型单元格图像水平移动?

Posted

技术标签:

【中文标题】为啥我的 iPhone UITableView 原型单元格图像水平移动?【英文标题】:Why are my iPhone UITableView prototype cell images horizontally shifted?为什么我的 iPhone UITableView 原型单元格图像水平移动? 【发布时间】:2012-11-17 14:33:15 【问题描述】:

为我的表格单元格添加了标志。使用情节提要将 UIImageView 放置在原本为空的原型单元格中并调整其大小(47x34)。然后在这里添加代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    static NSString *CellIdentifier = @"Cell1";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) 
        cell = [[UITableViewCell alloc]
            initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    
    cell.textLabel.text = [[[content objectAtIndex:indexPath.section] objectForKey:@"rowValues"] objectAtIndex:indexPath.row];
    cellTxt = cell.textLabel.text;

    UIImageView *flagImg = (UIImageView *) [cell viewWithTag:10];
    NSString *imgFilenm = [cellTxt stringByAppendingString:@".jpg"];
    flagImg.image = [UIImage imageNamed: imgFilenm ];
    cell.imageView.frame = CGRectMake(0, 0, 47, 34);   //  not needed, and doesn't fix it

    return cell;

图像出现了,但向左压缩到只有大约 8 个像素。为什么?以及如何纠正?谢谢! 原创:

** 编辑 ** 我将单元格文本切换为我添加的 UILabel。这是代码:

UILabel *nameLbl = (UILabel *)[cell viewWithTag:5];
nameLbl.text = [[[content objectAtIndex:indexPath.section] objectForKey:@"rowValues"] objectAtIndex:indexPath.row];

以及它在故事板中的样子:

但现在旗子甚至没有出现。

【问题讨论】:

你现在应该有足够的声望来上传了。 嘿,谢谢,保罗!看看吧。 这可能是问题所在:我的故事板默认为 Retina 显示的 iPhone,即使我选择 5.0 部署目标。不习惯那个“功能”,也不确定我喜欢它。可以改吗? 【参考方案1】:

你的旗帜没有被“压扁”。它们实际上隐藏在单元格标题的后面。尝试类似:

UIImageView *flagImg = (UIImageView *) [cell viewWithTag:10];
NSString *imgFilenm = [cellTxt stringByAppendingString:@".jpg"];
flagImg.image = [UIImage imageNamed: imgFilenm ];
[cell bringSubviewToFront:flagImg];

【讨论】:

【参考方案2】:

使用:

UIImageView *cellImage = (UIImageView *)[cell viewWithTag:10];
[cellImage setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg", [self.countries objectAtIndex: [indexPath row]]]]];

不知道为什么其他方法不起作用。

【讨论】:

以上是关于为啥我的 iPhone UITableView 原型单元格图像水平移动?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UITableView 不显示数据?

为啥 UITableView 不从数组中填充

为啥我的 UIActivityIndi​​catorView 只显示一次?

iPhone + UITableView + 行高

iphone,UITableView中的UITextField

为啥我的 plist 不会填充我的 UITableView?