我正在关注MessagesTableViewController,并且根据文字大小,有用于泡泡视图的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
的2个快照,它描述了气泡视图在ios7中的表现如何,虽然代码相同。
和
有人也有同样的问题并在GITHUB HERE中报道了
我对代码进行了如此多的审核,似乎ios7中存在resizableImageWithCapInsets
的问题。它在我们在方法中设置UIEdgeInsetsMake
时生成边框。
任何人都有想法或解决方案从气泡视图中删除边框并使其与ios6气泡视图相同?
任何帮助都会很明显。提前致谢。
答案 0 :(得分:4)
当宽度或高度为具有浮点数的数字时,iOS 7中会添加透明线条。作为解决方法,您可以对此数字进行舍入
答案 1 :(得分:3)
您需要确保绘制图像的CGRect是偶数而不是带浮点的数字。
除此之外,如果您有一个具有不同高度的TabViewCells的UITableView,您还需要确保这些单元格的高度均为偶数而不是浮点数。
答案 2 :(得分:1)
我可以确认这两个答案都是对的,但由于你使用的是与我相同的框架,我会给你一个片段来帮助你。
只是地板或泡沫的大小,你很高兴。- (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已经是你只需要它就是一个传出的气泡。和平