2010-07-29 79 views
3

我已经在IB中创建了一个UITableViewCell(320宽),该单元也是320宽。在UITableViewCell(或我的子类是正确的)中设置了一个背景图像(320宽)后,我注意到这些单元格不在UI的右侧(注意选定单元格上的蓝色和上面的灰色) )有谁知道这是什么原因造成的?UITableViewCell奇怪的宽度?

alt text

干杯加里

+0

确保您的单元格的contentView的宽度也是正确的。 – 2010-07-29 17:12:55

回答

3

我被设置分隔符的风格和UITableView的所述分隔符的颜色,这需要1个像素关闭的分隔符的单元格的高度和由大约5个像素到抵消backgound对。如果我将进入单元格的背景图像从320x65缩小到320x64,那么它完全适合没有偏移。

alt text

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

LEFT:UITableView的分隔符= “无”(的UITableViewCell背景已经无偏移)

RIGHT:UITableView的分隔符= “单行”(UITableViewCell背景有偏移量)

DATA:

  • 细胞分辨率:320x65
  • 细胞看法:320x65
  • 单元格背景图像分辨率:320x65

如果你想用你的手机背景图片必须是320x64的分离,这将停止它横向移动并正确显示单元格。

干杯加里

0

在我看来,你只是不设置您的背景图像视图的contentMode正确(例如,您将其设置为aspectFit或东西)。你确定它偏移了5,而实际上没有缩小5像素吗?

例如,如果原始图片是320x65,并且高度降低到64,则aspectFit将在保持相同宽高比的同时将其缩放到64/65 * 320 ~= 315

+0

它很难看到它隐藏在细胞边缘。您在右侧看到的蓝色是您在选择单元格时看到的全部亮点。如果缩放图像,您可能会看到顶部或底部显示蓝色。当你关闭分离器时,它也很有趣,它神奇地开始工作,所以我的猜测是它的正确拟合。 – fuzzygoat 2010-07-30 10:48:03

+0

我刚刚通过在黑色单元格320x65上放置一个1像素的白色边框来测试此效果,边框上的分隔符完全接触单元格的所有侧面,除了右侧,白色按照下面的蓝色设置。所以高度是正确的,它的尺度是宽度。 – fuzzygoat 2010-07-30 11:04:07

+0

如果我正确地阅读你,你有一个320x65的图像,除了白色的边框,全黑。如果这是真的,那么随着分隔符开启,您将320x65图像放入320x64视图,由于纵横比的原因,图像会缩小至315x64。同样,正确设置contentMode可以解决这个问题(在这种情况下,您希望scaleToFit)。 – 2010-07-30 14:57:07