Iphone UITableViewCell奇怪的宽度?

Iphone UITableViewCell奇怪的宽度?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我用IB中创建的UITableViewCell设置了一个UITableView(320宽),该单元格也是320宽。在UITableViewCell(或我的子类正确)中设置背景图像(320宽)后,我注意到这些单元格不在UI的右侧(注意所选单元格上的蓝色和上面的灰色),有人知道这是什么原因吗 干杯Gary我在UITableView上设置分隔符样式和分隔符颜色,这将使分隔符的单元格高度减少1个像素,并将背景向右偏移约5个像素。如果我将进入单元格的背景图像从320x65减少到320x64,则它完全适合

我用IB中创建的UITableViewCell设置了一个UITableView(320宽),该单元格也是320宽。在UITableViewCell(或我的子类正确)中设置背景图像(320宽)后,我注意到这些单元格不在UI的右侧(注意所选单元格上的蓝色和上面的灰色),有人知道这是什么原因吗


干杯Gary

我在UITableView上设置分隔符样式和分隔符颜色,这将使分隔符的单元格高度减少1个像素,并将背景向右偏移约5个像素。如果我将进入单元格的背景图像从320x65减少到320x64,则它完全适合,没有偏移

以下两个屏幕之间的唯一区别是:

左:UITableView separator=“无”(UITableView单元格背景没有偏移)

右:UITableView separator=“单行”(UITableView单元格背景有偏移)

数据:

  • 单元分辨率:320x65
  • 单元视图:320x65
  • 单元格背景图像分辨率:320x65
如果您想使用分隔符,您的单元格背景图像需要为320x64,这将阻止其横向移动并正确显示单元格


干杯Gary

在我看来,您只是没有正确设置背景图像视图的内容模式(即,您将其设置为aspectFit或其他)。你确定它的偏移量是5,而不是缩小了5个像素吗


例如,如果原始图片为320x65,高度降低到64,aspectFit将在保持相同纵横比的情况下将其缩放到
64/65*320~=315

确保单元格的contentView也具有正确的宽度。很难看到它隐藏在单元格边缘之外。您在右侧看到的蓝色是您在选择单元格时看到的完整高光。如果对图像进行缩放,您也会看到顶部或底部显示蓝色。同样有趣的是,当你关闭分离器时,它神奇地开始工作,所以我猜它会正确安装。我刚刚通过在一个黑色单元格320x65周围放置一个1像素的白色边框来测试这一点,边框上的分离器完全接触到单元格的所有侧面,除了右边的白色背景,如下图所示。所以高度是正确的,它是缩放的宽度。如果我读对了,你有一个320x65的图像,除了白色边框外,全是黑色。如果这是真的,那么在打开分隔符的情况下,您正在将一个320x65图像装配到一个320x64视图中,由于纵横比的原因,这会使图像缩放到315x64。同样,正确设置contentMode可以解决这个问题(在这种情况下,您需要scaleToFit)。