Iphone iOS7中带CAPINSETS问题的可调整大小的图像

Iphone iOS7中带CAPINSETS问题的可调整大小的图像,iphone,ios,objective-c,uiimage,ios7,Iphone,Ios,Objective C,Uiimage,Ios7,我遵循的是UIImage的上浆方法,气泡视图根据文本大小进行拉伸。它在较旧的ios版本中工作正常,但在ios7中,它显示浅色边框,如下所示设置UIEdgeInsetsMake + (UIImage *)bubbleDefaultIncoming { return [[UIImage imageNamed:@"bg-chat-white.png"] makeStretchableDefaultIncoming]; } - (UIImage *)makeStretchableDefaultIn

我遵循的是UIImage的上浆方法,气泡视图根据文本大小进行拉伸。它在较旧的ios版本中工作正常,但在
ios7
中,它显示浅色边框,如下所示设置
UIEdgeInsetsMake

+ (UIImage *)bubbleDefaultIncoming
{
  return [[UIImage imageNamed:@"bg-chat-white.png"] makeStretchableDefaultIncoming];
}

- (UIImage *)makeStretchableDefaultIncoming
{

  return [self resizableImageWithCapInsets:UIEdgeInsetsMake(15.0f,20.0f, 15.0f, 20.0f)
                            resizingMode:UIImageResizingModeStretch];
}
在这里,我为
ios6
ios7
附上了两个快照,它们描述了冒泡视图在ios7中的行为是如何奇怪,尽管代码是相同的。 及

有人也有同样的问题,并在
我经常查看代码,似乎ios7中的
ResizeableImageWithCapInsets
存在问题。当我们在方法中设置
UIEdgeInsetsMake
时,它会生成边界。
有人有想法或解决方案从bubble视图中删除边框并使其与ios6 bubble视图相同吗?

任何帮助都是值得的。提前谢谢

当宽度或高度为带浮点数的数字时,在iOS 7中添加透明线。作为一种解决方法,您可以舍入此数字

您需要确保将图像绘制到的CGRect是偶数,而不是带有浮点的数字


除此之外,如果您的UITableView具有具有不同高度的TabViewCells,您还需要确保这些单元格的高度都是偶数,而不是带有浮点的数字。

我可以确认这两个答案都是正确的,但是,由于您使用的是与我相同的框架,我将给您一个片段来帮助您

只要地板或天花板有泡沫那么大,你就可以走了

- (CGRect)bubbleFrame
{
    CGSize bubbleSize = [JSBubbleView bubbleSizeForText:self.text];
    return CGRectMake((self.type == JSBubbleMessageTypeOutgoing ? floor(self.frame.size.width - bubbleSize.width) : 0),
                  kMarginTop,
                  floor(bubbleSize.width),
                  floor(bubbleSize.height));
}

编辑:位置也需要向上或向下舍入,因为kMarginTop已经是你只需要在它是一个传出气泡时才需要的了。peace

我在github上读到了该页面,我知道这是一个apple bug。有什么需要解决的问题吗?是的,您可以通过确保CGRect是均匀的,并且表视图单元格的高度是均匀的来解决这个问题。查看我的答案。您可以看到,我已经在使用整数
UIEdgeInsetsMake(15.0f,20.0f,15.0f,20.0f)
。但是仍然有白线。四舍五入的数字应该用于你正在绘制的CGrect区域,我会检查这一个。谢谢